Rumah > Java > javaTutorial > teks badan

Apakah konsep polimorfisme Java?

王林
Lepaskan: 2023-05-19 13:31:27
ke hadapan
1910 orang telah melayarinya

1. Konsep polimorfisme

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

Kami mengubah suai kelas yang ditulis sebelum ini:

class Plant {
    String name;
    String source;
    String genu;
    public void func() {
        System.out.println("父类方法");
    }
}
class Tree extends Plant {
 
    public void trait() {
        System.out.println("子类方法");
    }
}
Salin selepas log masuk

Apa yang dipanggil transformasi ke atas adalah untuk mencipta objek subkelas dan Ia digunakan sebagai kelas induk

Operasi khusus adalah seperti berikut:

Plant tree=new Tree();
Salin selepas log masuk

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

Apakah konsep polimorfisme Java?2.2 Bentuk biasa penukaran ke atas

Dalam contoh di atas, ia adalah Yang pertama: penugasan langsung

Selain itu, terdapat dua bentuk

sebagai parameter kaedah

sebagai nilai pulangan kaedah

Apakah konsep polimorfisme Java?

3. Menulis semula

Apakah konsep polimorfisme Java? bermakna 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

Kami masih mengubah suai kelas:

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("子类方法");
    }
}
Salin selepas log masuk

Kami mengubah ke atas Akhirnya, lihat hasilnya sifat panggilan:

memanggil kaedah subkelas, dan ini juga merupakan ciri penulisan semula

Apakah konsep polimorfisme Java? sebenarnya 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 semula

2 Hak akses kaedah subkelas mestilah lebih besar daripada atau sama dengan kelas induk

3 , 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 pembina

Titik 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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan