子类的对象可以作为父类的对象(引用时是对父类方法的引用,但是传入的对象是子类的对象,即用子类的对象来对父类进行实例化。),但是反过来不行。
所以:
1、子类的访问权限一定要比父类大或相等。(子>父)
例: 假设一个父类A 拥有的方法 public void setXXX(){} 可以被其他任意对象调用 这个方法被子类B 覆写后 为 void setXXX(){} 即 默认的 访问权限 只能被本包极其子类 所访问 假设 其他包中的对象 C 调用 方法为: get( A a=new B()){ a.setXXX(); } 而此时传入的对象为B类对象,假设为b,此时b将转型为a,但是b中的setXXX() 调用权限 已经被缩小了这将造成错误。所以子类的方法的访问权限不能小于父类。 以上只是一个例子还有其他出于易维护、易代码结构设计的设计思想原因
2、子类重写父类的方法时抛出的异常大小不能比父类的异常大。(子<父)