我只是想让我的头在这附近。比方说,我有以下构造函数超几何:Java:如何调用子类构造函数内的超类构造函数?
public Geometry(double x, double y)
{
this.position = new Point(x,y);
this.collisionMesh = new ArrayList<Point>();
this.displayMesh = new ArrayList<Point>();
}
几何形状的成员地位,collisionMesh和displayMesh,所有它的子类将继承。
现在,我有一个孩子类,粒子。在下面的一个有效的构造:
public Particle(double x, double y)
{
super(x,y);
this.collisionMesh.add(this.position);
...
}
我想要确保的是这样的:调用超(X,Y)自动实例化我的子对象的的ArrayList和点,这样我就不需要这样做。
此外,在更深层次上,假设我可以做到这一点,这里究竟发生了什么?这感觉就像我在构造函数中调用构造函数一样。如果Particle对象没有被构造完成,那么在调用super的过程中构造的是什么?
谷歌是你的朋友https://docs.oracle.com/javase/tutorial/java/IandI/super.html – Dinh
你正在做很多不太类似的假设与现实。提示:所有这些都是很好的和广泛的文件记录。 – GhostCat
“构造函数”并不是非常幸运的名字。什么是构建(创建意义上的)对象是'new'关键字。它创建类似于'New SomeClass'之类的对象。构造函数类似于将已经创建的对象初始化为适当状态的方法(因此它就像由'new'运算符根据提供的参数调用的特殊方法)。 – Pshemo