Mekanisme pengikatan dinamis memungkinkan referensi ke kelas dasar untuk menunjuk ke objek subclass yang benar, sehingga memungkinkan pemrograman berorientasi kelas dasar.
Namun, ikatan dinamis akan gagal dalam dua situasi berikut.
1. Metode kelas dasar adalah privat atau akhir yang dimodifikasi
Ini mudah dimengerti, karena pribadi berarti metode ini tidak terlihat oleh subkelas. Tulis metode dengan nama yang sama di subclass bukan untuk mengganti metode kelas induk, tetapi untuk meregenerasi metode baru, jadi tidak ada masalah polimorfisme. Hal yang sama juga dapat dijelaskan oleh final, karena metode ini juga tidak dapat disurvasi.
2. Metode ini dimodifikasi secara statis
Kode adalah sebagai berikut.
basis kelas {public static void staticmethod () {System.out.println ("base staticmehtod"); } public void dynamicMehTod () {System.out.println ("Base DynamicMehTod"); }} class Sub memperluas basis {public static void staticmethod () {System.out.println ("Sub StaticMehTod"); } public void dynamicMehTod () {System.out.println ("Sub DynamicMehTod"); }} kelas publik tj4 {public static void main (string args []) {base c = new sub (); c.staticmethod (); c.dynamicmehtod (); }}/ * Output: base staticmehtod sub dinamismehtod */Hasil output tidak mengeluarkan "sub staticmehtod" seperti yang diharapkan. Karena metode statis dikaitkan dengan kelas daripada objek, c.staticmethod (); setara dengan car.staticmethod (); Jadi cobalah untuk tidak menggunakan variabel instan untuk memanggil metode statis untuk menghindari kebingungan.
Penjelasan terperinci di atas tentang metode statis Java tidak polimorfik. Ini semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.