パラメータ化されたコンストラクタについて
- パラメーターを使用してコンストラクターを定義する場合、別のパラメーターなしの構造を自分で定義しない限り、デフォルトのパラメーターなしの構造は無効になります。
- サブクラスは親クラスを継承しますが、コンストラクターは継承しませんが、明示的または暗黙的に呼び出すだけです親クラスのコンストラクターにパラメーターがある場合、サブクラスは、コンストラクターに示されているように、superを介して親クラスのコンストラクターを呼び出す必要があります。コンストラクターにパラメーターがない場合、システムはパラメーターなしでコンストラクターを自動的に呼び出します。
public class A{
int x;
public A(){
this.x=1;
}
public A(int x){
this.x=x;
}
}
public class B extends A{
public B(){
}
public B(int x){
super(x)}
public static void main(String[] args){
B b=new B();
b.x==1;
B b2=new B(3);
b.x==3;
}
}
親クラスのコンストラクターが表示されていない場合、親クラスの引数なしのコンストラクターが自動的に呼び出されます
public class C extends A{
public C(){
}
public C(int x){
}
public static void main(String[] args){
C c=new C(3);
c.x==1;
}
}