スーパークラスコンストラクターからサブクラスコンストラクターを呼び出すことはできますか?
サブクラスのコンストラクタは、サブクラスの唯一のインスタンス変数を初期化することができます。したがって、サブクラスオブジェクトがインスタンス化されると、サブクラスオブジェクトはスーパークラスのコンストラクターの1つも自動的に実行する必要があります。スーパークラスコンストラクターを呼び出すには、superキーワードが使用されます。
また、スーパークラスのコンストラクターを継承できますか?サブクラスは、そのスーパークラスからすべてのメンバー(フィールド、メソッド、およびネストされたクラス)を継承します。コンストラクターはメンバーではないため、サブクラスには継承されませんが、スーパークラスのコンストラクターはサブクラスから呼び出すことができます。コンストラクターは、newでのみ呼び出すことができます。メソッドとして呼び出すことはできません。
同様に、クラスコンストラクターからスーパークラスコンストラクターを呼び出すことはできますか?
super()の呼び出しは、Derived(Student)クラスコンストラクターの最初のステートメントである必要があります。コンストラクターがスーパークラスコンストラクターを明示的に呼び出さない場合、Javaコンパイラーはスーパークラスの引数なしコンストラクターへの呼び出しを自動的に挿入します。これはコンストラクタチェーンと呼ばれます。
コンストラクターでsuperを呼び出す必要がありますか?
親を持つすべてのクラス(Javaのすべてのユーザー定義クラス)に対して引数なしでsuper ()が暗黙的に呼び出されるため、通常は明示的に呼び出す必要はありません。親のコンストラクタは、パラメータを取り、そしてあなたがそれらを指定したい場合は、あなたは引数を持つスーパー()の呼び出しを使用することができます。