Rumah >Java >javaTutorial >Perbezaan antara antara muka dan kelas Java: Polimorfisme dan fleksibiliti
Perbezaan antara antara muka dan kelas Java: polimorfisme dan fleksibiliti
Java ialah bahasa pengaturcaraan berorientasikan objek, dan antara muka serta kelas adalah salah satu konsep pentingnya. Antara muka dan kelas mempunyai kegunaan dan ciri yang berbeza dalam Java Artikel ini akan memperkenalkan perbezaan antara antara muka dan kelas dari aspek polimorfisme dan fleksibiliti, dan menyediakan kod contoh khusus untuk menggambarkan.
1. Polimorfisme:
Polymorfisme ialah salah satu konsep teras pengaturcaraan berorientasikan objek, yang bermaksud objek daripada jenis yang sama mempunyai ciri tingkah laku yang berbeza. Di Java, kedua-dua antara muka dan kelas boleh mencapai polimorfisme, tetapi cara ia dilaksanakan adalah berbeza.
Kod sampel adalah seperti berikut:
class Animal{ void sound(){ System.out.println("动物发出声音"); } } class Dog extends Animal{ void sound(){ System.out.println("狗发出汪汪声"); } } class Cat extends Animal{ void sound(){ System.out.println("猫发出喵喵声"); } } public class PolymorphismTest { public static void main(String[] args) { Animal animal = new Animal(); Animal dog = new Dog(); Animal cat = new Cat(); animal.sound(); dog.sound(); cat.sound(); } }
Hasil keluaran:
动物发出声音 狗发出汪汪声 猫发出喵喵声
Dalam kod di atas, kelas Haiwan ialah kelas induk, dan kelas Anjing dan Kucing ialah subkelas kelas Haiwan. Dalam kaedah utama, objek Haiwan, Anjing dan Kucing dicipta masing-masing, dan kaedah bunyi() subkelas yang sepadan dipanggil melalui rujukan kelas induk. Disebabkan kewujudan overriding, hasil sebenar yang diperoleh apabila memanggil kaedah sound() objek yang berbeza juga berbeza. Ini mencerminkan polimorfisme kelas.
Kod sampel adalah seperti berikut:
interface Animal{ void sound(); } class Dog implements Animal{ public void sound(){ System.out.println("狗发出汪汪声"); } } class Cat implements Animal{ public void sound(){ System.out.println("猫发出喵喵声"); } } public class PolymorphismTest { public static void main(String[] args) { Animal dog = new Dog(); Animal cat = new Cat(); dog.sound(); cat.sound(); } }
Hasil keluaran:
狗发出汪汪声 猫发出喵喵声
Dalam kod di atas, Animal ialah antara muka dan Dog dan Cat ialah kelas yang melaksanakan antara muka Haiwan. Dalam kaedah utama, rujukan melalui antara muka Haiwan masing-masing menghala ke objek Anjing dan Kucing, dan kaedah bunyi() dipanggil. Begitu juga, kerana kaedah dalam antara muka dilaksanakan secara berbeza dalam kelas yang berbeza, anda akan mendapat hasil yang berbeza apabila anda memanggil kaedah tersebut. Ini mencerminkan polimorfisme antara muka.
2. Fleksibiliti:
Fleksibiliti merujuk kepada sama ada pengubahsuaian dan pelanjutan kepada butiran pelaksanaan boleh dilaksanakan dengan mudah dalam reka bentuk program. Perbezaan dalam fleksibiliti antara antara muka dan kelas terutamanya ditunjukkan dalam dua aspek berikut.
Ringkasnya, walaupun kedua-dua antara muka dan kelas boleh mencapai polimorfisme, ia berbeza dalam kegunaan dan cirinya. Kelas mencapai polimorfisme terutamanya melalui pewarisan dan penggantian, dan antara muka mencapai polimorfisme dengan melaksanakan antara muka dan rujukan kepada antara muka. Dari segi fleksibiliti, kelas terutamanya direalisasikan melalui pewarisan dan polimorfisme, manakala antara muka terutamanya direalisasikan melalui sambungan dan pengubahsuaian pada peringkat antara muka. Oleh itu, dalam aplikasi sebenar, penggunaan antara muka dan kelas perlu ditimbang mengikut keperluan untuk mencapai hasil reka bentuk perisian yang lebih baik.
Atas ialah kandungan terperinci Perbezaan antara antara muka dan kelas Java: Polimorfisme dan fleksibiliti. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!