Rumah > Java > javaTutorial > Perbezaan antara kelas abstrak dan antara muka dalam Java

Perbezaan antara kelas abstrak dan antara muka dalam Java

WBOY
Lepaskan: 2023-09-16 11:49:02
ke hadapan
851 orang telah melayarinya

Perbezaan antara kelas abstrak dan antara muka dalam Java

Di Java, abstraksi dicapai melalui kelas abstrak dan antara muka. Kedua-duanya mengandungi kaedah abstrak yang mesti dilaksanakan oleh subkelas atau kelas pelaksana. Berikut ialah perbezaan penting antara kelas abstrak dan antara muka.

thead>345678Akses

Contoh kelas abstrak dan antara muka
Tiger eats
Lion eats
Salin selepas log masuk
Sr.No.

key

Kelas abstrak

Antaramuka

Kaedah yang disokong

Kelas abstrak boleh mempunyai kedua-dua abstrak kaedah dan kaedah khusus.

Antara muka hanya boleh mempunyai kaedah abstrak. Bermula dari Java 8, ia boleh mempunyai kaedah lalai dan statik. Antara muka menyokong pelbagai warisan.

Pembolehubah yang disokong

Menyokong pembolehubah akhir, bukan akhir, statik dan bukan statik.

Hanya pembolehubah statik dan muktamad dibenarkan.

Pelaksanaan

Kelas abstrak boleh melaksanakan antara muka.

Antara muka tidak perlu melaksanakan antara muka, atau ia boleh memanjangkan antara muka.

Kata kunci

Kelas abstrak diisytiharkan menggunakan kata kunci abstrak.

Antara muka diisytiharkan menggunakan kata kunci antara muka.

Warisan

Kelas abstrak boleh mewarisi kelas lain menggunakan kata kunci lanjutan dan melaksanakan antara muka.

Antara muka hanya boleh mewarisi antara muka.

Warisan

Kelas abstrak boleh diwarisi menggunakan kata kunci extends.

Antara muka hanya boleh dilaksanakan menggunakan kata kunci implements.

Kelas abstrak boleh mempunyai sebarang jenis ahli, seperti persendirian dan awam.

Antara muka hanya boleh mempunyai ahli awam.

JavaTester.java
public class JavaTester {
   public static void main(String args[]) {
      Animal tiger = new Tiger();
      tiger.eat();
      Cat lion = new Lion();
      lion.eat();
   }
}
interface Animal {
   public void eat();
}
class Tiger implements Animal {
   public void eat(){
      System.out.println("Tiger eats");
   }
}
abstract class Cat {
   abstract public void eat();
}
class Lion extends Cat{
   public void eat(){
      System.out.println("Lion eats");
   }
}
Salin selepas log masuk

Output

Atas ialah kandungan terperinci Perbezaan antara kelas abstrak dan antara muka dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan