【发布时间】:2021-06-28 08:56:29
【问题描述】:
如果我从 Subclass 调用 super 构造函数,如何获取 Superclass 对象?
class Superclass implements Serializable {
int count;
String name;
public Superclass(int count, String name) {
this.count = count;
this.name = name;
}
}
class Subclass extends Superclass implements Serializable {
public Subclass() {
super(1, "first");
}
}
类似:
Subclass subclass = new Subclass();
Superclass superclass = subclass.getClass().getSuperclass();
superclass.getName();
【问题讨论】:
-
您的
Subclass实例 IS-ASuperclass,因此您可以在任何可以使用对Superclass的引用的地方使用对Subclass的引用。不清楚你想做什么。 -
好吧,对
super(...)的调用根本不会导致创建新对象。super所做的只是构造超类需要您构造的部分。你的子类是一个超类,但是扩展它:它可以添加方法或字段。 -
但我正在填写 super(1, "first");超类,它不是它的创造物吗?
-
是的,但没有单独的超类对象。只有一个对象,同时是超类和子类的实例。
-
@SlavaVir 只使用
subclass.getName()(确保getName是public方法)
标签: java subclass superclass