子类异常、访问权限与父类的关系

子类的对象可以作为父类的对象(引用时是对父类方法的引用,但是传入的对象是子类的对象,即用子类的对象来对父类进行实例化。),但是反过来不行。

所以:

1、子类的访问权限一定要比父类大或相等。(子>父)

例:
假设一个父类A 拥有的方法  public void setXXX(){}   可以被其他任意对象调用
这个方法被子类B 覆写后 为   void setXXX(){}  即 默认的 访问权限  只能被本包极其子类 所访问

假设 其他包中的对象 C  调用 方法为: 
     get( A  a=new B()){
        a.setXXX();
}
而此时传入的对象为B类对象,假设为b,此时b将转型为a,但是b中的setXXX() 调用权限
已经被缩小了这将造成错误。所以子类的方法的访问权限不能小于父类。

 以上只是一个例子还有其他出于易维护、易代码结构设计的设计思想原因

2、子类重写父类的方法时抛出的异常大小不能比父类的异常大。(子<父)

原文地址:https://www.cnblogs.com/ARABYCHEN/p/10616566.html