Dalam warisan Java, kelas super (kelas induk) ialah kelas universal yang mentakrifkan kelakuan dan sifat objek, manakala subkelas (kelas terbitan) mewarisi daripada kelas super dan melanjutkan fungsinya. Subkelas boleh menggunakan ahli bukan persendirian superclass dan boleh mengatasi kaedah superclass.
Polimorfisme:
Polymorphism membolehkan tingkah laku objek berubah-ubah bergantung pada jenis sebenar. Di Java, objek subkelas boleh diberikan kepada objek superclass dan apabila kaedah superclass dipanggil, kaedah sebenar yang dilaksanakan bergantung pada jenis objek sebenar.
Kelebihan polimorfisme:
Cabaran Polimorfik:
Amalan Terbaik:
Salah faham biasa:
Contoh:
Pertimbangkan contoh berikut:
class Shape { protected String name; public void draw() { System.out.println("Drawing a shape"); } } class Rectangle extends Shape { public void draw() { super.draw(); System.out.println("Drawing a rectangle"); } } class Circle extends Shape { public void draw() { super.draw(); System.out.println("Drawing a circle"); } } public class Main { public static void main(String[] args) { Shape s1 = new Rectangle(); Shape s2 = new Circle(); s1.draw(); // Prints "Drawing a rectangle" s2.draw(); // Prints "Drawing a circle" } }
Dalam contoh ini, Shape ialah superclass yang mentakrifkan kelakuan dan sifat biasa. Segi empat tepat dan Bulatan ialah subkelas yang diwarisi daripada Shape yang memanjangkan tingkah laku Shape. Kaedah utama mencipta dua objek Bentuk, satu diberikan kepada Segi empat tepat dan satu lagi kepada Bulatan. Apabila kaedah draw() dipanggil, kaedah sebenar yang dilaksanakan bergantung pada jenis objek sebenar, menunjukkan polimorfisme.
Atas ialah kandungan terperinci The Maze of Java Inheritance: Menavigasi Superclasses, Subclasses dan Polymorphism. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!