Rumah >Java >javaTutorial >Aplikasi polimorfisme antara muka dan kelas abstrak dalam Java
Di Java, polimorfisme dicapai melalui antara muka dan kelas abstrak. Antara muka mentakrifkan kaedah yang mesti dilaksanakan oleh kelas yang melaksanakannya; kelas abstrak mengandungi kaedah abstrak yang mesti dilaksanakan oleh subkelasnya. Polimorfisme dicapai dengan mencipta tatasusunan objek dan memanggil kaedah yang sama, membenarkan pelaksanaan berbeza dipanggil bergantung pada jenis sebenar elemen. Sebagai contoh, anda boleh mentakrifkan antara muka Shape untuk mentakrifkan kaedah lukisan kelas Shape, kemudian buat berbilang kelas bentuk (seperti Bulatan, Segiempat, Segi Tiga) dengan pelaksanaan yang berbeza dan menggunakan polimorfisme untuk melukis semua bentuk melalui kelas kanvas.
Aplikasi Polimorfisme dalam Antara Muka dan Kelas Abstrak dalam Java
Polymorphism ialah konsep utama dalam pengaturcaraan berorientasikan objek (OOP) yang membolehkan objek bertindak balas kepada panggilan kaedah yang sama dengan cara yang berbeza. Di Jawa, polimorfisme boleh dicapai melalui antara muka dan kelas abstrak.
Antaramuka
Antara muka mentakrifkan satu set kaedah yang mesti dilaksanakan oleh kelas yang melaksanakannya. Antara muka itu sendiri tidak mengandungi sebarang pelaksanaan, ia hanya menentukan kontrak.
public interface Shape { double getArea(); }
Kelas Abstrak
Kelas abstrak ialah kelas yang mempunyai sekurang-kurangnya satu kaedah abstrak. Kaedah abstrak tidak dilaksanakan dan mesti dilaksanakan oleh subkelas mereka. Kelas abstrak boleh mengandungi kaedah dan medan konkrit.
public abstract class Animal { protected String name; public abstract void makeSound(); }
Polymorphism
Menggunakan antara muka dan kelas abstrak, adalah mungkin untuk mencipta tatasusunan objek di mana setiap elemen mempunyai jenis yang berbeza. Apabila kaedah yang sama pada elemen ini dipanggil, pelaksanaan yang berbeza dipanggil bergantung pada jenis elemen sebenar.
Shape[] shapes = { new Circle(), new Square(), new Triangle() }; for (Shape shape : shapes) { System.out.println("Area: " + shape.getArea()); }
Kes praktikal
Pertimbangkan kelas kanvas yang boleh melukis bentuk yang berbeza. Bentuk boleh ditakrifkan menggunakan antara muka berikut:
public interface Shape { void draw(); }
Kemudian, berbilang kelas bentuk dengan pelaksanaan lukisan berbeza boleh dibuat:
public class Circle implements Shape { @Override public void draw() { System.out.println("Drawing a circle"); } } public class Square implements Shape { @Override public void draw() { System.out.println("Drawing a square"); } } public class Triangle implements Shape { @Override public void draw() { System.out.println("Drawing a triangle"); } }
Kelas kanvas boleh menerima tatasusunan objek Bentuk, menggunakan polimorfisme untuk melukis semua bentuk:
public class Canvas { public void drawAll(Shape[] shapes) { for (Shape shape : shapes) { shape.draw(); } } }
Melalui antara muka dan Kelas Abstrak, Polimorfisme dalam Java membenarkan kaedah dipanggil secara dinamik berdasarkan jenis objek sebenar, sekali gus membolehkan kod berskala dan boleh digunakan semula.
Atas ialah kandungan terperinci Aplikasi polimorfisme antara muka dan kelas abstrak dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!