举反例来进行说明,咱们就让子类重写的方法的权限的修饰符小于父类对应方法的修饰权限分析一下会怎么样。
class A{
public void m(){}
}
class B extends A{
private void m(){}
}
A a=new B(); // a对象的声明是A类,所以a对象能干什么要看A类,A类告诉a对象有一个m方法可以使用,而且m方法可以再任何地方使用
a.m(): //a对象本质上是B类来创建的,所以m方法分执行要看B类,B类告诉a对象m方法只能在本类中使用------产生冲突