Ringkasnya, objek yang berbeza melengkapkan tingkah laku yang sama, tetapi menghasilkan keadaan yang berbeza
Contoh yang sangat mudah: kelas di sekolah Pelajar mengambil peperiksaan yang sama. Selepas peperiksaan, markah ujian pelajar yang berbeza adalah berbeza Ada yang gagal, ada yang berkeliaran di garis lulus, dan ada yang mendapat markah yang tinggi. Jadi pada tahap manakah anda~(  ̄▽ ̄)~
Untuk mencapainya. polimorfisme, syarat diperlukan. kelas induk
3. Panggil kaedah yang ditulis semula melalui rujukan kelas induk
Beberapa konsep baharu yang terlibat di atas akan diperkenalkan secara terperinci di bawah
2
2.1 Konsep
class Plant { String name; String source; String genu; public void func() { System.out.println("父类方法"); } } class Tree extends Plant { public void trait() { System.out.println("子类方法"); } }
Operasi khusus adalah seperti berikut:
Plant tree=new Tree();
Oleh kerana ia digunakan sebagai kelas induk, pokok tidak boleh memanggil kaedah subkelas pada masa ini
Terdapat penukaran ke bawah dalam Java, tetapi kerana penukaran ke bawah tidak selamat, kami melangkaunya
2.2 Bentuk biasa penukaran ke atas
Dalam contoh di atas, ia adalah Yang pertama: penugasan langsung
sebagai parameter kaedah
sebagai nilai pulangan kaedah 3. Menulis semulabermakna subkelas menulis semula kaedah kelas induk Kaedah ini tidak boleh menjadi pembina, juga bukan pengubahsuaian peribadi atau muktamad dan statik, dan apa yang kita tulis semula ialah. kandungan dalam kaedah. Nama kaedah, nilai pulangan dan parameter kaedah tidak boleh diubah suai
class Plant { String name; String source; String genu; public void trait() { System.out.println("父类方法"); } } class Tree extends Plant { @Override //注解,此注解可以进行一些合法性校验 public void trait() { System.out.println("子类方法"); } }
Kami mengubah ke atas Akhirnya, lihat hasilnya sifat panggilan:
memanggil kaedah subkelas, dan ini juga merupakan ciri penulisan semulasebenarnya disusun Pada masa itu, kaedah kelas induk memang dipanggil, tetapi kaedah yang diganti menentukan kaedah yang hendak dipanggil semasa fasa pelaksanaan (iaitu pengikatan dinamik Ini juga merupakan perbezaan penting antara menulis ganti dan terlebih muatan
3.1 Nota tentang menulis semula
1. Kaedah dan pembina statik, muktamad, peribadi tidak boleh ditulis semula2 Hak akses kaedah subkelas mestilah lebih besar daripada atau sama dengan kelas induk3 , jenis nilai pulangan bagi kaedah yang diganti mungkin berbeza, tetapi ia mesti mempunyai hubungan ibu bapa-anak, iaitu jenis kovarian 4 Jangan panggil kaedah yang diganti dalam pembinaTitik terakhir ialah nota yang berasingan: Anggapkan bahawa pembina kelas induk memanggil kaedah yang diganti, kerana pembina subkelas akan terlebih dahulu memanggil pembina kelas induk, jadi objek subkelas adalah dinamik sebelum ia sepenuhnya dibina. Pengikatan memanggil kaedah ditulis semula Dalam kes ini, kebarangkalian masalah program akan meningkat dengan ketara Selepas memahami transformasi ke atas dan menulis semula, anda pada asasnya tahu cara melaksanakan polimorfisme dalam Java: dalam warisan Sistem menggabungkan ke atas. transformasi dan penulisan semula untuk mencapai polimorfisme
Atas ialah kandungan terperinci Apakah konsep polimorfisme Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!