私はJavaを勉強しており、本書では "Javaコンパイラは最初の文が呼び出されない場合は引数なしのコンストラクタsuper()親コンストラクタです。 "継承とコンストラクタでのJava 8コンパイラ拡張の明確化
しかし私にとっては完全なものです。「Javaコンパイラは、最初の文が親コンストラクタへの呼び出しでない場合、引数のないコンストラクタsuper()への呼び出しを自動的に挿入します。 ) "this()は、パラメータの有無にかかわらずクラス内の任意のコンストラクタを意味します。
ケース1:
public class MyClass{
public MyClass() {}
}
私は何を意味することはケース1で、コンパイラは確かに最初のステートメントとしてsuper()を追加しますが、ケース2には、それは引数でコンストラクタのためにしないということですコンパイル後
、次のようになります。
public class MyClass {
public MyClass() {super();}
}
ケース2:
public class MyClass{
public MyClass() {}
public MyClass(int num) { this(); }
}
0123コンパイル後
は、次のようになります。
public class MyClass{
public MyClass() {super();}
public MyClass(int num) { this(); }
}
私はこのことを分かりませんでした。 – Mouss