If you look at the history of object orientation, it starts as slots for function pointers in structs in C, with some preprocessor statements to make it easier to use. Literally the object is just a struct which holds data and function pointers.<p>Pretty interesting when you think about it - java hasn&#x27;t moved that conceptually far from C preprocessor statements.