小编Use*_*ser的帖子

Java继承是否会创建隐藏的父对象?

在多处解释中,都说明继承时只创建一个对象。但是,在从超类继承期间,子类不会继承其父类的私有属性。

然而,当子类调用其父类的非静态 getter 方法时,它显然是从某个父对象而不是类获取值。那么似乎当您创建子类对象时,也会创建一个存储这些私有属性的超类对象。

那么继承的方法和属性本质上有两个副本吗?例如,如果一个超类对象A有一个子类对象B。那么B内部同时存在一个super.attribute和一个this.attribute,因为还创建了一个隐藏的A对象?那么构造函数如何知道属性之间的区别呢?例如,A 有一个构造函数,将公共属性设置为 4。然后 B 调用该构造函数并将相同的属性设置为 5。但是 B 也继承了该属性,不是吗?那么它会重置为4吗?或者 super.attribute = 4 和 this.attribute = 5 吗?因此,属性的值不是继承的,但它的存在是吗?

java inheritance

2
推荐指数
1
解决办法
108
查看次数

标签 统计

inheritance ×1

java ×1