Artikel ini menjelaskan penjadwalan metode dinamis Java. Bagikan untuk referensi Anda, sebagai berikut:
Penjadwalan Metode Dinamis:
1. Akses metode non-statis dari variabel yang direferensikan, dan mengikat metode objek yang dirujuk pada runtime.
2. Akses metode statis dari variabel yang direferensikan, yang terikat pada metode kelas yang dinyatakan saat runtime.
3. Akses variabel anggota dari variabel yang direferensikan (termasuk variabel statis dan variabel instance), dan mengikat variabel anggota kelas yang dinyatakan saat runtime.
Poin 3: Berikan perhatian khusus, saya tidak pernah menyadarinya sebelumnya
1. Metode non-statis:
orang kelas publik {nama string publik; public void getInfo () {System.out.println ("Class Parent"); }} siswa kelas publik memperluas orang {public void getInfo () {// metode override super.getInfo (); // Panggil metode metode kelas induk.out.println ("subclass");} public static void main (string [] args) {person s = siswa baru (); Orang t = orang baru (); s = t; // Jenis objek S adalah kelas induk, yaitu kelas orang s.getInfo ();}}Hasil dari menjalankannya adalah: kelas induk
2. Metode statis:
orang kelas publik {nama string publik; public static void getInfo () {System.out.println ("Class Parent"); }} siswa kelas publik memperluas orang {publics static void getInfo () {// metode override System.out.println ("Subclass");} public static void main (string [] args) {Person S = New Student (); s.getInfo (); // setara dengan orang.getInfo ();}}Hasil dari menjalankannya adalah: kelas induk
3. Variabel anggota
kelas publik erson {public string name = "father"; public void getInfo () {System.out.println ("Class Parent"); }} siswa kelas publik memperluas orang {public string name = "son"; public void getInfo () {// metode override super.getInfo (); // panggil metode metode kelas induk.out.println ("subkelas");} public static void main (string [] args) {person s = siswa baru (); orang t = orang baru (); s = t; tystem.out.println (s.name);}}Hasil Menjalankan: Fanther
Hal yang sama berlaku untuk mengubah variabel anggota menjadi tipe statis
Selain itu, untuk dua variabel berikut
Siswa = siswa baru (); orang t = siswa baru ();
Namun, sebenarnya ada perbedaan antara keduanya. Ketika siswa subkelas memiliki metode pribadi sendiri (bukan di kelas induk), misalnya, ada metode
goschool publik () {}Maka hanya S yang dapat memanggil metode goschool ini
T tidak bisa dipanggil
Saya harap artikel ini akan membantu pemrograman Java semua orang.