问答详情
源自:9-1 Java 中的继承

访问修饰符的问题

前面讲到,修饰缺省的成员在 本类 和 同包 中访问,protected修饰的成员可以在  本类、同包 和 子类访问。我在在同一个包下建立父类Animal(成员设置为default),子类都可以继承,我想是在同一个包内的缘故。

于是我另外建立了一个包,建立Animal类(我将成员设置成了protected,我以为可以被子类继承)的子类Dog类,eclipse报错,要求我将成员设置为public,或者用getter方法,这是为什么?protected的范围不是 本类、同包 和 子类吗?

提问者:七九九 2016-01-29 23:15

个回答

  • 用户1152043
    2016-01-30 00:46:16
    已采纳

    你也说了你自己另外建立了一个包,这个包中又建立了 Dog类 这个时候 Dog 和 Animal 不在同一个包下面

    所以这个时候Aniaml 和 Dog 不在同一个包下面

    所以你用protected 修饰的属性当然不能被子类继承。