Rumah >Java >javaTutorial >Mengapa Perintah Invokasi Pembina Penting dalam Java: `this()` dan `super()`?
Perintah Invokasi Pembina: Mengapa Ini() dan super() Penting?
Mandat Java yang memanggil ini() dan super( ) dalam pembina menjadi pernyataan awal. Keperluan ini berpunca daripada pelaksanaan berurutan pembina: pembina kelas induk mesti digunakan sebelum pembina subkelas.
Dengan memastikan pesanan ini, Java menjamin bahawa kelas induk dimulakan dengan betul sebelum mengakses mana-mana ahlinya dalam pembina subkelas. Pertimbangkan contoh berikut:
public class MyClass { public MyClass(int x) {} } public class MySubClass extends MyClass { public MySubClass(int a, int b) { int c = a + b; super(c); // COMPILE ERROR } }
Pengkompil menolak kod ini dengan ralat, kerana panggilan kepada super bukanlah pernyataan pertama dalam pembina MySubClass. Menyusun semula kod untuk memastikan pesanan ini menyelesaikan isu:
public class MySubClass extends MyClass { public MySubClass(int a, int b) { super(a + b); // OK } }
Pesanan ini penting kerana percubaan untuk mengakses kaedah atau medan kelas induk sebelum memulakan kelas induk melalui super() boleh membawa kepada gelagat yang tidak ditentukan.
Begitu juga, memanggil this() mestilah pernyataan pertama dalam pembina untuk memastikan objek semasa dimulakan sepenuhnya sebelum memanggil yang lain pembina dalam kelas yang sama. Dengan mengenakan sekatan ini, Java mengekalkan susunan pelaksanaan yang betul bagi pembina dan menghalang kemungkinan ralat.
Atas ialah kandungan terperinci Mengapa Perintah Invokasi Pembina Penting dalam Java: `this()` dan `super()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!