In object-oriented languages, when polymorphism concerning (non-static) methods is implemented using function pointers, polymorphism is able to occur because of:
Select one or more:
a. Every type that inherits from another type, copies its parent(s) vtable data except for the slots associated with overridden methods + no new slots are added for new methods.
b. Every type that inherits from another type, nulls out its parent(s) vtable data except for the slots associated with overridden methods + new slots are added for new methods.
c. Object-oriented polymorphism cannot be implemented using function pointers at all.
d. Every type (and/or object of that type) has a vtable pointer which points to only one array of function pointers where each non-static function is assigned a specific slot in that array.
e. Every type that inherits from another type, copies its parent(s) vtable data except for the slots associated with overridden methods + new slots are added for new methods.