【问题标题】:It is said that when we create an object of a sub-class automatically the objects of its super-classes get created. is it true?据说当我们自动创建一个子类的对象时,它的超类的对象就会被创建。是真的吗?
【发布时间】:2014-12-26 01:01:53
【问题描述】:

据说当我们创建sub-classobject 时,它的super-classesobjects 会自动创建。是真的吗?如果是,那么如果超类是抽象类怎么办。

【问题讨论】:

  • 这种看你说的the objects of its super-classes get created是什么意思。
  • 抽象类的子类对象创建时内部会发生什么?
  • 你所说的“它的超类的对象”是什么意思?请澄清问题。无法判断您是在谈论(可能)在超类中声明的字段还是其他内容。
  • @RayToal : 超类的对象是指父类的对象有子类。

标签: java abstract-class subclass superclass


【解决方案1】:

不,那不是真的。一个对象只有一种类型:您实例化的类。该对象还将包含超类的所有字段,并且可以在该对象上调用超类的所有方法(尚未被覆盖),但它仍然只是一个对象。

例如,假设您有:

class A {
    int i;
}

class B extends A {
    int j;
}

如果您实例化new B(),您将获得一个 对象,该对象具有两个 字段的存储空间,ij

【讨论】:

  • +1 即使超类是抽象的,这种情况仍然会发生(这只是意味着超类不能自己构造)。
【解决方案2】:

超类的子类“is-A”实例,因此它不会创建不同的对象,您的子类实例IS超类实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多