@neauoire I'm sure that there is some good stuff here but continually reading "this is wrong" turns me right off. There is no objective right and wrong here, any more than there is in a choice of sandwich¹, and I wouldn't want to work with anyone that thought there was.

Also choosing Java to demonstrate the "flaws" of OOP is kind of easy mode — Java is known to get itself tied up in knots.

¹You can't make a milk sandwich, but ham and cheese are not objectively rankable.