假如没有那个限制的话,比如说父类有个方法method是public的,而子类重写这个方法将其变成了protected甚至是private的,如果编译可以通过,
将来进行多态引用Father father = new Son();然后调用method也就是father.method(),这个时候就发生多态,也就是实际调用子类的重写的受保护的或者私有的method,很显然该重写访求有private或protected保护,没有权限,这就实现不了多态,那重写方法就没有意义了,重写方法更重要的是为多态服务
class A{
void test(){}
}
class B extends A{
private void test(){}
}
class C extends B{}
如果这样的话,
A a = new C();
a是没有权限访问B中的test()函数的,但是却有权限访问A中的test()函数,这样就乱了。
B覆盖A中的方法还有什么意义?