Rumah > Java > javaTutorial > Polimorfisme dalam Java: Bagaimanakah Ia Berbeza daripada Mengatasi dan Melebihkan?

Polimorfisme dalam Java: Bagaimanakah Ia Berbeza daripada Mengatasi dan Melebihkan?

DDD
Lepaskan: 2024-12-24 20:23:12
asal
713 orang telah melayarinya

Polymorphism in Java: How Does it Differ from Overriding and Overloading?

Polymorphism: Mendedahkan Perbezaan daripada Overriding dan Overloading

Mengenai polimorfisme di Java, adalah penting untuk menjelaskan perbezaan daripada overriding dan terlebih muatan. Overloading merujuk kepada kewujudan pelbagai kaedah dengan nama yang sama tetapi senarai parameter yang berbeza dalam kelas yang sama. Overriding, sebaliknya, melibatkan penentuan kaedah dalam subkelas yang mempunyai tandatangan yang sama (nama dan parameter) sebagai kaedah dalam kelas supernya.

Apabila mempertimbangkan polimorfisme, jawapan yang paling tepat terletak pada konsep kelas atau antara muka abstrak. Kelas asas abstrak mentakrifkan kaedah tanpa pelaksanaan, yang kemudiannya dilaksanakan dalam subkelasnya. Pendekatan ini menunjukkan polimorfisme.

Untuk menggambarkan, pertimbangkan kelas asas abstrak Manusia dengan kaedah abstrak goPee(), yang tidak boleh ditakrifkan pada peringkat Manusia tetapi mesti dilaksanakan dalam subkelas Lelaki dan Perempuan untuk menampung jantina- tingkah laku tertentu.

public abstract class Human {
    public abstract void goPee();
}
Salin selepas log masuk
public class Male extends Human {
    @Override
    public void goPee() {
        System.out.println("Stand Up");
    }
}
Salin selepas log masuk
public class Female extends Human {
    @Override
    public void goPee() {
        System.out.println("Sit Down");
    }
}
Salin selepas log masuk

Dalam contoh ini, kaedah goPee() ialah ditindih dalam subkelas untuk menyediakan pelaksanaan khusus. Polimorfisme berlaku apabila kita boleh memberitahu sekumpulan Manusia untuk kencing, dan mereka akan melakukan tindakan mengikut pelaksanaan masing-masing.

public static void main(String[] args) {
    ArrayList<Human> group = new ArrayList<>();
    group.add(new Male());
    group.add(new Female());

    // Tell Humans to go pee
    for (Human person : group) person.goPee();
}
Salin selepas log masuk

Output:

Stand Up
Sit Down
Salin selepas log masuk

Daripada ini demonstrasi, menjadi jelas bahawa polimorfisme ialah keupayaan untuk objek berbeza dalam hierarki warisan untuk mempamerkan tingkah laku yang berbeza semasa bertindak balas kepada mesej yang sama. Overriding ialah mekanisme yang membolehkan tingkah laku ini, manakala lebihan muatan ialah konsep berasingan yang berkaitan dengan tandatangan kaedah dalam kelas yang sama.

Atas ialah kandungan terperinci Polimorfisme dalam Java: Bagaimanakah Ia Berbeza daripada Mengatasi dan Melebihkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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