I’ve been reading books introducing the concept of Object-Oriented Programming for a lot of years now, for a number of different languages and with any number of authors. And it boggles my mind that the convention in every single one is to try to explain notions like methods or instances with variations on cars, fruits, or small mammals.
Maybe twenty or even fifteen years ago people who were learning basic programming might not have been all that familiar with computer interface elements like, say, a button, but that’s no excuse in 2008 (almost 2009) not to use some sort of more concrete examples when describing how OOP is implemented, instead of grasping for ever more strained “real-world” explanations.