Java 当子类重写受保护的成员时,该成员就可以访问。操作人员
Java 当子类重写受保护的成员时,该成员就可以访问。操作人员,java,core,Java,Core,package xxx.yyy public class ParentClass { protected void doPrint(){ System.out.println("Parent....."); } } package aaa.bbb; import cathy.inner.ParentClass; public class Child extends ParentClass { public void getName(
package xxx.yyy
public class ParentClass {
protected void doPrint(){
System.out.println("Parent.....");
}
}
package aaa.bbb;
import cathy.inner.ParentClass;
public class Child extends ParentClass {
public void getName(){
System.out.println("Child....");
}
}
包aaa.bbb中的客户端无法使用new Child().doPrint()。但是,如果child重写,则客户端可以使用new child().doPrint()。
这对我来说似乎很奇怪,因为在重写期间,我们不能将访问修饰符更改为更严格的,但在这种情况下,继承的方法似乎是私有的
为什么要以这种方式实现它?Protected将只允许子类访问方法。。。这并不奇怪,因为java有一种类型的限制…
Super
类方法的访问修饰符是受保护的
,它声明方法可以通过类
、包
和子类
访问
所以它在子类的包中是不可访问的
当您使用
受保护的
访问修饰符覆盖子类
中的特定方法时,它将可以访问,因为受保护的
方法可以在相同的包
下访问 它定义了一个新的方法,但它只针对一个样本。