It depends on how much they already know, if they have experience in C ++ / C programming and start OO, then examples from databases, forms, vectors, etc. will work, if they have relatively little experience, then you need to start with abstract or real life examples, examples are cited in another answer
A coffee maker A chicken A bicycle etc.
will work great (even though you mentioned that you don't like such examples) in understanding the concept of an object-oriented approach and the theory behind it. They should see how everything works together to form a machine, how each component (class) works and interacts (public methods and interfaces), hiding their own functions and providing a set of services for other components (classes).
Very popular examples that teachers give are radio, where the user does not know what is inside the radio and how it works, the user only knows what he is doing, and the radio makes its functions available to the user by using the buttons on the panel.
These basic examples work well for beginners, and then a programming task should immediately be associated with it. Once they understand the basics, in my opinion, you should use programming and application examples instead of abstract examples.
source share