为了账号安全,请及时绑定邮箱和手机立即绑定

子类与父类的关系是什么样的?

子类与父类的关系是什么样的?

七九九 2016-02-14 15:52:36
package imooc;       //               imooc包中 public class HelloWorld {     protected static int a=1;//protected不能被异包非子类调用 } --------------------------------------------------------------------------- package imooc.second;//        imooc.second包中 import imooc.HelloWorld; public class Hello extends HelloWorld { } ------------------------------------------------------------------------- package imooc.second;//        imooc.second包中            public class Hello2 {     public static void main(String[] args) {         System.out.println(Hello.a);         /*报错,提示要将HelloWorld类中protected修饰符改为public。如果Hello类中创建了属于Hello的类变          *量a,那么这里应该不会报错。但是这里报错说明Hello类中没有protected修饰的属于Hello类的类变量          *a。反而快速修改提示修正HelloWorld类中的修饰符为public,那么我有理由认为子类相当于一个中转          *站,并没有属于自己的成员。          */     } }这种理解对不对?子类与父类是集合中的包含关系,创建的子类并没有构造新的属于子类的成员(简单的继承,无override),而是相当于将父类中可继承的成员组合起来,形成的一个类。通过   子类名   调用任何成员,实际上指向的是父类的成员. 因此通过 子类名 调用成员,受制于父类中的访问修饰符。
查看完整描述

2 回答

已采纳
?
wilsonwan

TA贡献4条经验 获得超6个赞

protected 同包及子类可访问,Hello2非子类也非同包,所以访问被拦截

如果你在Hello中添加一个proteted的静态方法来访问HelloWorld类中的a,就不会被拦截

拦截一词可能用的不恰当

查看完整回答
2 反对 回复 2016-02-15
?
一条小咸鱼

TA贡献457条经验 获得超255个赞

应该是的

查看完整回答
反对 回复 2016-02-14
  • 2 回答
  • 0 关注
  • 2091 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信