Javaコンストラクタの特徴
Javaのコンストラクタの特徴として以下が挙げられます。
- コンストラクタの名前はクラス名と全く同じで、戻り値の型(voidも含む)はありません。
- オブジェクトを作成するときに自動的に呼び出され、オブジェクトの状態を初期化する目的で用いられる
- 引数をとることができるコンストラクタでは、外部から与えられた値を受け取り、オブジェクトを作成する際にオブジェクトの状態を初期化できます。
- コンストラクタを定義していない場合、Java では無引数でデフォルトのコンストラクタがデフォルトで提供されます。
- 引数のあるコンストラクタを定義すると、Javaではデフォルトコンストラクタは提供されなくなり、Java自ら定義する必要がある。
- コンストラクタはオーバーロードできます。つまり、異なる引数リストを持つコンストラクタを複数定義できます。
- コンストラクターは this キーワードを使用して他のコンストラクターを呼び出し、コンストラクターの再利用を実現します。
- コンストラクタではアクセス修飾子 (public、private など) を使い、その可視性を制御することができます。
- コンストラクタは継承やオーバーライドができません。
- コンストラクタはsuperキーワードにより親クラスのコンストラクタを呼び出し、オブジェクトの継承を実現できる。
簡単にいえば、コンストラクタとは、オブジェクトを作成したときにオブジェクトの状態を初期化するため、クラス名と同じ名前で、引数付きにすることができ、オーバーロードができて、継承やオーバーライドはできない。