子类继承父类之后,实例化子类后,父类中的私有成员会存在于子类对象的内存中么?

明月镇魂 明月镇魂 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
JAVA官方文档明确指出:子类无法继承父类中的私有属性以及私有方法。
但是以下代码:

public class ExtendsDemo02 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 验证子类能否访问父类中的private属性或者方法
// 或者说继承?
child ch = new child();
ch.setage(10);
ch.name = "xiaomim";
System.out.println(ch);
System.out.println(ch.getage());

}

}

class person_private {
private int age;
String name;

public void setage(int age) {
this.age = age;
}

public int getage() {
System.out.println(this);
return this.age;
}

}

class child extends person_private {
void cry() {
System.out.println("wowo");
}
}


其运行结果为:

child@55f33675
child@55f33675
10


也就是说this和ch指向同一个对象,这个现象是不是说明在子类对象的内存中存在父类的私有成员(或者说为父类私有成员开辟了空间)?如果不存在,那么父类的私有属性存放在哪里呢?
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
明月镇魂
Java SE 62,621 成员 307,251 内容