当前位置: 首页 > 面试题库 >

使用超类初始化子类对象java

白烨煜
2023-03-14
问题内容

SuperClass object = new SubClass();

为什么使用超类实例化上面的子类对象?因为我学会实例化对象的唯一方法是:

SubClass object = new SubClass();

我正在学习Java。


问题答案:

您可能有一个仅接受实例的方法SuperClass。由于SubClass
SuperClass,您可以使用的实例SubClass并将其视为SuperClass

使用接口时,会使用相同的行为:

List someList = new ArrayList();

这就是多态的美。它允许您更改类内部的实现,而无需破坏其余代码。



 类似资料:
  • 我想使用“=”符号初始化MyClass的对象。 例如。字符串a=“你好”; 我想做 这是我用构造函数写的类

  • 我找不到任何关于这个具体案例的具体SO帖子,所以我想问一下我认为是/否的问题。 以下是JLS§12.4.2(Java SE 8),清单6-7: 我的问题是:这是否意味着子类的final static变量在超类的静态初始化之前初始化(假设final static作为其声明的一部分初始化)?

  • 我有一份抽象的课堂报告: 我需要强制所有子类填充此 surrogateId 属性。(如果子类未填充属性,则会出现编译错误) 我尝试使用 final 关键字来强制我在构造函数中引入此属性的值,但我必须手动生成构造函数而不是使用 Lombok,很多样板代码。有没有办法在不手动生成结构的情况下实现相同的期望。

  • 问题内容: 我正在尝试创建UIBezierPath的子类,以添加一些对我有用的属性。 编辑:我需要这个,因为在我的代码中我写 并导致编译错误: “必须调用超类’UIBezierPath’的指定初始化程序” 我试图在子类中添加该初始化器,但似乎不起作用。 你能帮我吗? 问题答案: 注意 :此问题已在iOS 9中得以解决,在该版本中,API已被重写为存在,其他所有(方便初始化程序)也是如此。 问题 简

  • 我正在做一些关于JAVA初始化过程的研究。这里有一个很好的参考材料:当一个类在JVM中加载和初始化时 在这个页面上有规则说: 3)如果类初始化是由于访问静态字段而触发的,只有声明静态字段的类被初始化,即使静态字段被类型的子引用,它也不会触发超级类或子类的初始化类,子接口或接口的实现类。 我真的不明白这个想法。如果静态字段被Subclass引用,那么这个字段当然需要创建一个子类对象或由Subclas

  • 并且让我的所有子类在init时调用?这样做感觉不对,因为用foo完成的工作只会发生一次。