私はちょうどこれの周りに私の頭を取得しようとしています。のは、私はスーパークラスのジオメトリのための次のコンストラクタを持っているとしましょう: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、。
私は子クラスのParticleを持っています。有効なコンストラクタ以下の通りです:
public Particle(double x, double y)
{
super(x,y);
this.collisionMesh.add(this.position);
...
}
私は何のことを確認したいのはこれです:私はする必要がないようにスーパーへの呼び出しは(x、y)は、自動的に、私の子オブジェクトののArrayListとポイントをインスタンス化そうする。
また、より深いレベルで、私がこれを行うことができると仮定すると、実際に何が起こっているのですか?私はコンストラクタ内でコンストラクタを呼び出すように感じます。パーティクルオブジェクトがまだ構築されていない場合、superへの呼び出し中に構築されるのは何ですか?
Googleはあなたの友だちです。https://docs.oracle.com/javase/tutorial/java/IandI/super.html – Dinh
あなたは、あまり似ていない多くの仮定をしています現実とヒント:そのすべてが素敵で広範に文書化されています。 – GhostCat
"コンストラクタ"はあまり幸運な名前ではありません。オブジェクトを作成する意味では、 'new'キーワードがあります。 'new SomeClass'のように表示される型のオブジェクトを作成します。コンストラクターは、すでに作成されたオブジェクトを適切な状態に初期化するメソッドと似ています(提供された引数に基づいて 'new'演算子によって呼び出される特別なメソッドのようなものです)。 – Pshemo