gam*_*ver 56 java constructor abstract-class
为什么abstractJava 中的类有一个constructor?
它构建的是什么,因为我们无法实例化一个abstract类?
有什么想法吗?
Uri*_*Uri 80
Java中的构造函数实际上并不"构建"对象,它用于初始化字段.
想象一下,你的抽象类有字段x和y,并且你总是希望它们以某种方式初始化,无论最终创建什么实际的具体子类.因此,您创建一个构造函数并初始化这些字段.
现在,如果您有两个不同的抽象类子类,当您实例化它们时,将调用它们的构造函数,然后将调用父构造函数并初始化字段.
如果您不执行任何操作,将调用父项的默认构造函数.但是,您可以使用super关键字来调用父类的特定构造函数.
小智 10
有两个原因:
1)抽象类具有,constructors并且在实例化具体子类时始终调用这些构造函数.我们知道当我们要实例化一个类时,我们总是使用该类的构造函数.现在,每个构造函数都使用隐式调用来super()调用其超类的构造函数.
2)我们知道构造函数也用于初始化类的字段.我们也知道抽象类可能包含字段,有时需要使用构造函数以某种方式初始化它们.
我想这个问题的根源是人们相信对构造函数的调用会创建对象。事实并非如此。Java 无处声称构造函数调用会创建对象。它只是做我们想让构造函数做的事情,比如初始化一些字段......就是这样。所以抽象类的构造函数被调用并不意味着它的对象被创建。