无法降低从父方法继承的方法的可见性
2022-09-05 00:00:25
我得到这个编译器错误:
不能降低继承方法的可见性。
我有以下代码
class Parent {
public void func() {
System.out.println("in Parent");
}
}
public class TestClass extends Parent {
public static void main(String args[]) {
parent obj=new TestClass();
obj.addTest();
}
private void func() {
System.out.println("in child");
}
}
这里的父类具有公共方法,并被私有子类覆盖。现在编译器抛出我无法降低可见性的错误。从技术上讲,每当我创建一个分配给类型父对象的对象时,既然方法被覆盖了,TestClass的func()将始终被调用,那么为什么我们应该注意可见性呢?这个错误背后的原因是什么?有人可以清楚地解释我吗?func()
TestClass
TestClass
func()