Rumah >Java >javaTutorial >Polimorfisme dalam Java: Bagaimanakah Ia Berbeza daripada Mengatasi dan Melebihkan?
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(); }
public class Male extends Human { @Override public void goPee() { System.out.println("Stand Up"); } }
public class Female extends Human { @Override public void goPee() { System.out.println("Sit Down"); } }
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(); }
Output:
Stand Up Sit Down
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!