Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่างคลาสนามธรรมและอินเตอร์เฟสใน Java


ใน Java นามธรรมสามารถทำได้โดยใช้คลาสนามธรรมและอินเทอร์เฟซ ทั้งสองมีวิธีนามธรรมที่คลาสลูกหรือคลาสที่นำไปใช้งาน ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่างคลาสนามธรรมและอินเทอร์เฟซ

ซีเนียร์ เลขที่
Key
คลาสนามธรรม
อินเทอร์เฟซ
1
วิธีการที่รองรับ
คลาสนามธรรมสามารถมีได้ทั้งวิธีนามธรรมและรูปธรรม
อินเทอร์เฟซมีได้เฉพาะเมธอดนามธรรมเท่านั้น Java 8 เป็นต้นไป มันสามารถมีค่าเริ่มต้นเป็นวิธีการแบบคงที่
2
การสืบทอดหลายรายการ
ไม่รองรับการสืบทอดหลายรายการ
อินเทอร์เฟซรองรับการสืบทอดหลายรายการ
3
ตัวแปรที่รองรับ
รองรับตัวแปรสุดท้าย ไม่สุดท้าย คงที่และไม่คงที่
อนุญาตเฉพาะตัวแปรสแตติกและตัวแปรสุดท้ายเท่านั้น
4
การนำไปใช้
คลาสนามธรรมสามารถใช้อินเทอร์เฟซได้
อินเทอร์เฟซไม่สามารถใช้อินเทอร์เฟซ แต่สามารถขยายอินเทอร์เฟซได้
5
คำหลัก
คลาสนามธรรมที่ประกาศโดยใช้คำสำคัญที่เป็นนามธรรม
อินเทอร์เฟซถูกประกาศโดยใช้คำสำคัญอินเทอร์เฟซ
6
การสืบทอด
คลาสนามธรรมสามารถสืบทอดคลาสอื่นโดยใช้คีย์เวิร์ดขยายและใช้งานอินเทอร์เฟซ
อินเทอร์เฟซสามารถสืบทอดได้เฉพาะอินเทอร์เฟซเท่านั้น
7
การสืบทอด
คลาสนามธรรมสามารถสืบทอดได้โดยใช้คีย์เวิร์ดขยาย
อินเทอร์เฟซสามารถใช้งานได้โดยใช้คีย์เวิร์ด Implement เท่านั้น
8
การเข้าถึง
คลาสนามธรรมสามารถมีสมาชิกประเภทใดก็ได้ เช่น ส่วนตัว สาธารณะ
อินเทอร์เฟซมีได้เฉพาะสมาชิกสาธารณะเท่านั้น

ตัวอย่างคลาสนามธรรมเทียบกับอินเทอร์เฟซ

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");
   }
}

ผลลัพธ์

Tiger eats
Lion eats