是的,Java中的protected方法可以被重写(Override)。当一个子类继承了一个父类,并且子类中定义了一个与父类中protected方法具有相同名称、参数列表和返回类型的方法时,子类中的方法会覆盖(重写)父类中的方法。
重写protected方法的目的是为了在子类中提供特定于子类的实现,同时保持对父类方法的访问权限。需要注意的是,重写方法时,访问修饰符不能比被重写的方法更严格。例如,如果父类方法是protected,那么子类方法可以是protected或public,但不能是private。
以下是一个简单的例子:
class Parent {
protected void print() {
System.out.println("Parent class print method");
}
}
class Child extends Parent {
@Override
protected void print() {
System.out.println("Child class print method");
}
}
public class Main {
public static void main(String[] args) {
Parent parent = new Parent();
parent.print(); // 输出 "Parent class print method"
Child child = new Child();
child.print(); // 输出 "Child class print method"
Parent childAsParent = new Child();
childAsParent.print(); // 输出 "Child class print method"
}
}
在这个例子中,Child类重写了Parent类中的print()方法。当我们使用Child对象调用print()方法时,将执行子类中的实现。当我们使用Parent类型的引用指向Child对象并调用print()方法时,仍然会执行子类中的实现,这是因为方法已经被重写。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。