Question

    Which of the following best represents the concept of polymorphism in Object-Oriented Programming? 

    A Hiding the internal details of an object and exposing only the required functionality Correct Answer Incorrect Answer
    B The ability to define a method in different forms in derived classes Correct Answer Incorrect Answer
    C Establishing a "has-a" relationship between two classes Correct Answer Incorrect Answer
    D Grouping related fields and methods within a class Correct Answer Incorrect Answer
    E Allowing objects of different classes to relate without common functionality Correct Answer Incorrect Answer

    Solution

    Polymorphism in Object-Oriented Programming (OOP) allows methods to be defined in different forms across different derived classes, typically by overriding or overloading methods. This enables a single method to exhibit multiple behaviors, depending on the object that invokes it. For example, a base class method draw() in a shape class could be defined differently in derived classes like Circle and Rectangle, where each class implements its unique version of draw(). This approach promotes flexibility, reduces code duplication, and allows developers to manage code easily as new classes are added, embodying one of OOP’s core principles. Polymorphism is critical for creating extensible and maintainable code, as it enables a system to process objects of various types through a common interface. Option A (Encapsulation) - Encapsulation is the OOP principle of hiding internal details and exposing only necessary features through a class interface, which differs from polymorphism’s focus on varied behaviors. Option C (Aggregation) - Aggregation describes a "has-a" relationship between classes, where one class contains references to another, unrelated to polymorphic behavior. Option D (Encapsulation) - This concept of grouping related fields and methods within a class refers to encapsulation, not polymorphism. Option E (Unrelated Classes) - Allowing objects of unrelated classes to connect without a common functionality does not represent polymorphism, which requires shared interfaces or inheritance.

    Practice Next

    Relevant for Exams: