In regards to the point of static and dynamic binding, the virtual keyword needs to be used for any functions that need to be dynamically overriden and not statically overloaded.
The question revolves around polymorphism, and not the general OOP compliance of the language.Care should be taken in regards to early static binding, and late dynamic binding.Object chopping or slici...