このコードでは、クラス A の super(t) またはクラス B の引数なしコンストラクターのいずれかで動作することを理解しています。以下のコードでは、クラス B の引数なしコンストラクターを使用しています。引数なしコンストラクターを取り出すと、クラスBのコードは機能しません。私はプログラミングが初めてで、理解しようとしているのは、クラス B の引数なしのコンストラクターの何が特別なのかということです。コードが機能するために存在しなければならないのはなぜですか? 特別な条件または規則とは何ですか?
public class Test {
public static void main(String[] args) {
B b = new B(5);
}
}
class A extends B {
public A(int t) {
System.out.println("A's constructor is invoked");
}
}
class B {
public B() {
}
public B(int k) {
System.out.println("B's constructor is invoked");
}
}