【问题标题】:How can I get Superclass object我怎样才能得到超类对象
【发布时间】: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-A Superclass,因此您可以在任何可以使用对 Superclass 的引用的地方使用对 Subclass 的引用。不清楚你想做什么。
  • 好吧,对super(...) 的调用根本不会导致创建新对象。 super 所做的只是构造超类需要您构造的部分。你的子类一个超类,但是扩展它:它可以添加方法或字段。
  • 但我正在填写 super(1, "first");超类,它不是它的创造物吗?
  • 是的,但没有单独的超类对象。只有一个对象,同时是超类和子类的实例。
  • @SlavaVir 只使用subclass.getName()(确保getNamepublic 方法)

标签: java subclass superclass


【解决方案1】:

看来应该是答案了:

Superclass superclass = (Superclass) subclass;

【讨论】:

  • 你根本不需要投射。
  • 如果我问 superclass.getClass().getName() 我有子类
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多