官方介绍

可能大家都知道,JAVA中protected权限是本类、同包类、子类。

但是如果子类不在和父类不在同一个包中,那将会发生什么?

子类在其他包中访问

我们将父类和子类放在两个包中,如下所示:

protected访问权限范围(JAVA中的protected的访问权限)(1)

protected访问权限范围(JAVA中的protected的访问权限)(2)

可以发现:

  • 若子类与父类不在同一包中,那么在子类中,子类实例可以访问其从父类继承而来的protected属性,而不能访问父类实例的protected方法。
  • 不在父类和子类所在的包中访问

    protected访问权限范围(JAVA中的protected的访问权限)(3)

    可以看到其他包中,不管是子类的实例还是父类的实例访问都没有权限导致报错!不管该包是否包含父类与子类

    总结

  • 父类的protected成员是包内可见的,并且对子类可见;
  • 若子类与父类不在同一包中,那么在子类中,子类实例可以访问其从父类继承而来的protected方法,而不能访问父类实例的protected方法。
  • 不在父类和资类所在的包中访问,则没有相应的权限