Liskov替换原则
子类对象可以被当成父类对象使用。如果可以降低子类的访问权限,那就违反了这一原则了。
Java子类重写继承的方法时,不可以降低方法的访问权限,子类继承父类的访问修饰符要比父类的更大,也就是更加开放。
假如父类是protected修饰的,其子类只能是protected或者是public,绝对不能是friendly(默认的访问范围)或者private,当然使用private就不是继承了。
还要注意的是,继承当中子类抛出的异常必须是父类抛出的异常的子异常,或者子类抛出的异常要比父类抛出的异常要少。
Java四种访问权限
- private:表示成员是私有的,只有自身可以访问。
- protected:表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。
- 无修饰符(默认),表示包访问权限(friendly,java语言中是没有friendly这个修饰符的,这样称呼应该是来源于C++),同一个包内可以访问,访问权限是包级访问权限。
- public:表示成员是公开的,所有其他类都可以访问。