Antara muka dan kelas abstrak ialah kedua-dua mekanisme untuk mentakrifkan kontrak antara kelas, tetapi antara muka boleh menyokong berbilang warisan dan hanya mengandungi kaedah abstrak, manakala kelas abstrak hanya menyokong warisan tunggal dan boleh mengandungi kedua-dua kaedah dan atribut konkrit. Antara muka memberi lebih perhatian kepada definisi kontrak dan menggalakkan penggunaan semula kod kelas abstrak memberikan warisan separa untuk mengurangkan lebihan, tetapi apabila menukar kelas abstrak, subkelas mesti diubah suai secara serentak. Dalam pertempuran sebenar, antara muka Shape mentakrifkan kaedah untuk mendapatkan kawasan dan perimeter grafik; kelas abstrak Square melaksanakan pengiraan kawasan, dan subkelas konkrit SpecificSquare melaksanakan pengiraan perimeter.
Persamaan, perbezaan, kelebihan dan keburukan antara muka dan kelas abstrak dalam Java
Dalam Java, antara muka dan kelas abstrak ialah mekanisme yang digunakan untuk menentukan kontrak antara kelas. Terdapat kedua-dua persamaan dan perbezaan yang ketara antara keduanya.
Persamaan
Perbezaan
Ciri-ciri | Antaramuka | Kelas abstrak |
---|---|---|
Pengubahsuaian umum | , dilindungi atau lalaiWarisi | |
hanya boleh mewarisi satu kelas abstrak | pelaksanaan | |
boleh mengandungi kaedah abstrak dan kaedah konkrit | sifat | |
hanya boleh mengandungi sifat statik | hanya boleh mengandungi sifat statik dan kaedah | |
Tidak boleh instantiated | Tidak boleh instantiated | |
hanya boleh mengandungi kaedah abstrak |
Kelemahan Cemerlang
Antara Muka
Sokong warisan berbilang.
Subkelas mesti secara eksplisit melaksanakan semua kaedah antara muka.
Kelas abstrak
Menyokong warisan separa, membenarkan subkelas memilih kaedah yang hendak dilaksanakan.
Jika anda menukar kelas abstrak, anda perlu menukar semua subkelas. .
Atas ialah kandungan terperinci Persamaan, perbezaan, kelebihan dan kekurangan antara muka dan kelas abstrak dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!