Polymorphism, Overriding dan Overloading dalam Java
Mendefinisikan Polimorfisme
Apabila membincangkan polimorfisme dalam Java, tidak membebankan atau mengatasi sepenuhnya intipatinya. Polimorfisme paling baik difahami melalui kelas asas atau antara muka abstrak.
Kelas Asas Abstrak dan Polimorfisme
Pertimbangkan kelas asas abstrak Manusia dengan kaedah abstrak goPee(), mentakrifkan konsep yang tidak dapat direalisasikan sepenuhnya untuk manusia sehingga digunakan dalam subkelasnya, seperti Lelaki dan Perempuan.
public abstract class Human { ... public abstract void goPee(); }
Mengatasi dalam Subkelas
Subkelas seperti Lelaki dan Perempuan melaksanakan kaedah goPee() berdasarkan ciri khusus mereka:
public class Male extends Human { ... @Override // Annotation indicating override public void goPee() { System.out.println("Stand Up"); } }
public class Female extends Human { ... @Override // Annotation indicating override public void goPee() { System.out.println("Sit Down"); } }
Polimorfik Gelagat
Dengan persediaan ini, susunan objek Manusia boleh mengandungi kejadian Lelaki dan Perempuan. Apabila memanggil goPee() pada semua manusia, kaedah ganti ganti khusus untuk setiap subkelas dilaksanakan, mempamerkan tingkah laku polimorfik:
public static void main(String[] args) { ArrayList<Human> group = new ArrayList<>(); group.add(new Male()); group.add(new Female()); // Polymorphism: Execute overridden goPee() in each subclass for (Human person : group) person.goPee(); }
Kesimpulan
Polymorphism menjelma melalui keupayaan objek kelas yang berbeza untuk bertindak balas secara berbeza kepada panggilan kaedah yang sama. Ia memanfaatkan warisan dan kaedah mengatasi untuk mencapai fleksibiliti ini.
Atas ialah kandungan terperinci Bagaimanakah Polimorfisme Berfungsi di Jawa Melalui Pewarisan dan Penggantian Kaedah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!