为什么Java中的抽象类有构造函数?
2022-08-31 14:42:27
为什么 Java 中的类有一个 ?abstract
constructor
它构造了什么,因为我们无法实例化一个类?abstract
有什么想法吗?
为什么 Java 中的类有一个 ?abstract
constructor
它构造了什么,因为我们无法实例化一个类?abstract
有什么想法吗?
Java中的构造函数实际上并不“构建”对象,它用于初始化字段。
想象一下,您的抽象类具有字段 x 和 y,并且无论最终创建什么实际的具体子类,您始终希望以某种方式初始化它们。因此,您需要创建一个构造函数并初始化这些字段。
现在,如果您有两个不同的抽象类子类,当您实例化它们时,将调用它们的构造函数,然后调用父构造函数并初始化字段。
如果不执行任何操作,将调用父级的默认构造函数。但是,您可以使用 super 关键字来调用父类上的特定构造函数。
原因有二:
1)抽象类具有,并且这些构造函数总是在实例化具体子类时调用。我们知道,当我们要实例化一个类时,我们总是使用该类的构造函数。现在,每个构造函数都通过对 super()
的隐式调用来调用其超类的构造函数。constructors
2)我们知道构造函数也用于初始化类的字段。我们还知道抽象类可能包含字段,有时需要使用构造函数以某种方式初始化它们。