为什么我不能调用protectedMethod()
甚至类Parent的对象调用它的方法?
package packageA;
public class Parent{
protected void protectedMethod(){
System.out.println("Hello Parent");
}
}
并在另一个包中:
package packageB;
import packageA.Parent;
Public Class Child extends Parent{
public static void main(String[] args) {
Parent parent = new Parent();
parent.protectedMethod(); //illegal
Child child = new Child();
child.protectedMethod(); // legal
}
}
答案 0 :(得分:1)
您的子类可以在它自己的父上调用protectedMethod(),而不是在任何创建的独立Parent对象上调用。
因此,super.protectedMethod()是合法的,但这似乎不是你需要的。如果要创建一个在Parent对象上调用方法的Child对象,而不是它自己的父对象,则必须将该方法声明为public。