访问修饰符的问题

来源:9-1 Java 中的继承

七九九

2016-01-29 23:15

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

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

写回答 关注

1回答

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

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

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

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

    用户1152... 回复七九九

    刚才试了一下 异包子类可以调用父类的属性啊

    2016-01-30 22:08:19

    共 3 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题