Which statement about dynamic dispatch is true?

Get ready for your Object‑Oriented Programming Test. Use flashcards and multiple-choice questions. Each question includes hints and explanations. Prepare for your exam today!

Multiple Choice

Which statement about dynamic dispatch is true?

Explanation:
Dynamic dispatch means that when you call a method on an object, the program chooses which implementation to run based on the object's actual class at runtime. The statement that the actual object's class determines which overridden method runs, enabling polymorphic behavior, captures this idea perfectly. This is what lets a base-class reference invoke the subclass’s version if it overrides the method, so the behavior matches the real type of the object rather than just the declared type. Think of an example where a reference of a base type points to a subclass instance; calling the method will execute the subclass’s override, not the base version. This runtime decision is typically supported by a dispatch mechanism like a vtable, which maps the call to the correct method implementation for the object's real class. Static methods don’t participate in dynamic dispatch because they’re tied to a class rather than an instance, so they’re resolved without considering the runtime type of an object. The idea that dispatch is based solely on generic type parameters isn’t accurate either, since the core factor driving dynamic dispatch is the actual runtime type of the object, not just its generic parameters.

Dynamic dispatch means that when you call a method on an object, the program chooses which implementation to run based on the object's actual class at runtime. The statement that the actual object's class determines which overridden method runs, enabling polymorphic behavior, captures this idea perfectly. This is what lets a base-class reference invoke the subclass’s version if it overrides the method, so the behavior matches the real type of the object rather than just the declared type.

Think of an example where a reference of a base type points to a subclass instance; calling the method will execute the subclass’s override, not the base version. This runtime decision is typically supported by a dispatch mechanism like a vtable, which maps the call to the correct method implementation for the object's real class.

Static methods don’t participate in dynamic dispatch because they’re tied to a class rather than an instance, so they’re resolved without considering the runtime type of an object. The idea that dispatch is based solely on generic type parameters isn’t accurate either, since the core factor driving dynamic dispatch is the actual runtime type of the object, not just its generic parameters.

Subscribe

Get the latest from Examzify

You can unsubscribe at any time. Read our privacy policy