java中的构造函数是什么,如果它不是类的成员?

如果它不是Oracle doc中所述类的成员,我们称之为构造函数: http : //docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

我认为术语“成员”的定义是为了方便起见而排除构造函数。 建设者,甚至是公共建设者,都不是inheritance者; 成员是inheritance的(除非它们是静态的和/或私有的)。 在谈论inheritance规则时,总是不得不说“除了构造函数之外的成员”,这会很尴尬。

从Java语言规范,§8.2 :

构造函数,静态初始化程序和实例初始值设定项不是成员,因此不会inheritance。

只需调用构造函数“构造函数”。

它是每个类都有的特殊方法,在创建对象后调用。 在JVM中它使用invokespecial调用,让我们称它为special方法?

而且由于Java中只有一种特殊方法 – 它们都称之为“构造函数”

所有文档都说默认情况下不会inheritance构造函数。 由于构造函数是在内存堆中构造对象时调用的方法,因此一旦创建了从超类inheritance的子类,默认情况下不会调用超类的构造函数。

例如,如果您有类Vehicle和子类Car ,则假设Vehicle构造函数如下:

 public Vehicle(String vehName) { this.vehName = vehName; } 

然后,即使您的类Carinheritance自Vehicle类, vehName成员(字段)设置为上面的构造函数。

所以你需要做这样的事情:

 public Car(String vehName) { super(vehName); } 

希望有所帮助

构造函数是一个类中的方法,用于创建该类的新实例。 成为一个类的成员只意味着有问题的项目在课堂上。

构造函数是一个名称与类相同的方法。 它用于初始化类的对象。 这隐含在行动中。 参数化构造函数初始化具有不同值的对象。

在Java中,类主体(大括号之间的区域)可以包含以下关键项:(1)字段(2)方法(3)其他类(嵌套类)(4)构造函数(5)初始化程序

从特定类创建的对象应采用与创建它的蓝图(类)类似的形状。 现在,如果查看可以包含在类主体中的项目,只有第(1)到第(3)项有助于确定可以从特定类定义创建哪种对象。

构造函数和初始化程序仅参与对象的实际创建(例如,已定义字段的初始化),但不确定对象应携带的形状/状态,以及它将显示的行为。

因此,对我来说,调用item(1)到(3)类成员是有意义的(即类成员是类体中的那些项,它们决定了从类创建的对象的外观和行为); 而构造函数和初始值设定项不是成员,因为它们在类定义中的缺失不会影响类的状态和行为。

因此,只有类成员可以inheritance,因为inheritance背后的重点是启用子类重用状态和其超类的行为。