When I first learned OOP from the dry examples like Shape is the base class of Circle and Triangle, and so on … I just didn’t appreciate why that was much better than the flat imperative style of plain old C and retreated back to the comforts of C. Then I started writing larger C programs with structures that had common function pointers called “draw” and “rotate” and realized these are just obj ct methods … and the structures were different implementations of a common base class … OK, so I guess OOP is useful after all.
So it helps to compare the old ways to the new ways side by side, with a real world example, to understand why the new ways are better.