Overriding Protected Methods in Java: Explanation and Example

Java Q&A Hub 使用 GPT-4o-mini 回答

问题:

can protected method be overridden in java, why?

回答:

Yes, a protected method can be overridden in Java.

Explanation:

  1. Access Modifier: The protected access modifier allows the method to be accessible within its own package and also to subclasses (even if they are in different packages). This means that any subclass can override a protected method from its superclass.

  2. Method Overriding: In Java, method overriding occurs when a subclass provides a specific implementation of a method that is already defined in its superclass. The method in the subclass must have the same name, return type, and parameters as the method in the superclass.

  3. Polymorphism: Overriding is a key feature of polymorphism in Java. When a subclass overrides a method, it allows for dynamic method dispatch, meaning that the method that gets executed is determined at runtime based on the object's actual type, not the reference type.

Example:

Here’s a simple example to illustrate overriding a protected method:

class Parent {
    protected void display() {
        System.out.println("Display from Parent");
    }
}

class Child extends Parent {
    @Override
    protected void display() {
        System.out.println("Display from Child");
    }
}

public class Main {
    public static void main(String[] args) {
        Parent obj = new Child();
        obj.display();  // Output: Display from Child
    }
}

In this example:

  • The Parent class has a protected method display().
  • The Child class overrides the display() method.
  • When we create an instance of Child and call display() using a reference of type Parent, the overridden method in Child is executed.

Conclusion:

In summary, protected methods can be overridden in Java because the protected access level allows subclasses to access and modify the behavior of inherited methods, enabling polymorphism and code reuse.