A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 生牛排 中级黑马   /  2016-7-23 13:02  /  407 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

父类的成员变量用private修饰,子类继承可以用set或get方法活得,而在测试类中创建了一个子类的对象,那么这个子类的对象可以访问到父类的属性,我就想问了这个属性的值存在哪里了,是父类的堆内存吗,可是没有创建父类的对象,只是创建了子类的对象,而且属性是父类私有的,表示不懂啊?

1 个回复

倒序浏览
1、在子类实例化的时候,父类也实例化了。
2、这两个并不交互,各自独立。
方法其实还是各自自己的,只是父类允许(看权限)子类访问自己的某些成员。
  1. class A
  2. {
  3.         private int i=1;
  4.         public void setI(int i)
  5.         {
  6.                 this.i=i;
  7.         }
  8.         public int getI()
  9.         {
  10.                 return i;
  11.         }
  12. }
  13. class B extends A
  14. {
  15. }
  16. class Demo
  17. {
  18.         public static void main(String[] args)
  19.         {
  20.                 B b=new B();
  21.                 b.setI(5);
  22.                 System.out.println(b.getI());
  23.                 A a=new A();
  24.                 System.out.println(a.getI());
  25.         }
  26. }
复制代码

打印结果为
5
1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马