Kata kunci Java Super
Kata kunci super mirip dengan ini, yang digunakan untuk mewakili instance dari kelas saat ini, dan Super digunakan untuk mewakili kelas induk.
Super dapat digunakan dalam subkelas untuk mendapatkan variabel anggota dan metode kelas induk melalui titik (.). super 也可以用在子类的子类中,Java 能自动向上层类追溯。
Perilaku kelas induk dipanggil, seperti jika perilaku adalah perilaku kelas ini, dan perilaku panggilan tidak harus terjadi di kelas induk, ia dapat secara otomatis melacak kelas atas.
super 关键字的功能:
调用父类中声明为private 的变量。
点取已经覆盖了的方法。
Mewakili konstruktor kelas induk sebagai nama metode.
Panggil variabel tersembunyi dan metode ditimpa
Demo Public {public static void main (string [] args) {dog obj = new dog (); DECLARE A Getter Public String getDesc () {return desc; ); ;}}
Hasil Menjalankan:
Hewan Dapat Bergerak Dapat Berjalan dan Berlari Ingat: Hewan adalah teman baik manusia
Metode Move () juga dapat didefinisikan dalam beberapa kelas leluhur, seperti kelas induk dari kelas induk.
Untuk memanggil variabel tersembunyi dari kelas induk melalui Super, Anda harus mendeklarasikan metode pengambil di kelas induk, karena anggota data yang dinyatakan sebagai pribadi tidak terlihat oleh subkelas.
Hubungi konstruktor kelas induk
Dalam banyak kasus, konstruktor default digunakan untuk menginisialisasi objek kelas induk.当然也可以使用super 来显示调用父类的构造方法。
Demo Kelas Publik {public static void main (string [] args) {dog obj = new dog ("huahua", 3); ini .name = nama; (" I'm a cute puppy, my name is "+ name + ", I" + age + "year-old"); }}
Hasil Menjalankan:
Saya anak anjing yang lucu, nama saya huahua, saya berumur 3 tahun
Catatan: Apakah itu super () atau ini (), harus ditempatkan di baris pertama konstruktor.
Perlu dicatat:
Konstruktor lain dipanggil dalam konstruktor, dan tindakan panggilan harus ditempatkan pada posisi awal.
Konstruktor tidak dapat dipanggil dalam metode apa pun selain konstruktor.
Hanya satu konstruktor yang dapat dipanggil dalam konstruktor.
Jika Anda menulis konstruktor tanpa menelepon super () atau ini (), kompiler akan secara otomatis memasukkan panggilan ke konstruktor kelas induk tanpa parameter.
Akhirnya, perhatikan perbedaan antara Super dan ini: Super bukan referensi ke suatu objek, dan Super tidak dapat ditetapkan ke variabel objek lain.
Java Instance dari operator <br /> polimorfisme membawa masalah, yaitu bagaimana menilai jenis objek yang sebenarnya dirujuk oleh variabel. C ++ menggunakan informasi tipe runtime (RTTI), dan Java menggunakan instance dari operator.
Contoh operator digunakan untuk menentukan jenis objek yang sebenarnya yang dirujuk oleh suatu variabel. Silakan lihat kode berikut:
Demo kelas akhir publik {public static void main (string [] args) {// referensi contoh orang kelas orang obj = orang baru (); objek ");} if (instance Obj dari orang) {System.out.println (" Saya manusia ");} if (instance Obj dari guru) {System.out.println (" Saya seorang guru ");} jika (Obj dari Presiden) {System.out.println ("I Am The Principal"); Baris // Contoh Rujuk ke Kelas Guru OBJ = Guru Baru (); "Saya seorang manusia"); );}}} kelas orang {} :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::
Hasil Menjalankan:
Saya adalah objek saya manusia ---------------------------------------------- -------------------------------------------------- ----------------------------
Seperti yang dapat dilihat, instance dari mengembalikan true jika variabel mengacu pada instance dari kelas saat ini atau subkelasnya, jika tidak salah.