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

ความแตกต่างระหว่าง Class และ Interface ใน Java

Class

  • กำหนด attributes (fields) และ behaviors (methods) ของ object
  • มีได้ทั้ง abstract และ concrete methods
  • คีย์เวิร์ด: class
  • สร้าง instance ได้ (instantiate)
  • ไม่รองรับ Multiple Inheritance (extends ได้เพียง 1 class)
  • สมาชิกเข้าถึงได้: public, private, protected
  • Variables: static, final, instance

Interface

  • กำหนด behaviors (methods) ที่ class ต้อง implement
  • มีแค่ abstract methods (Java 7-) หรือ default/static methods (Java 8+)
  • คีย์เวิร์ด: interface
  • ไม่สามารถสร้าง instance ได้
  • รองรับ Multiple Inheritance (implements หลาย interface, extends หลาย interface)
  • Variables: public static final เท่านั้น (implicit)
  • สมาชิก: public โดย default
  • เป็น Blueprint: บอกว่า class ต้องทำอะไร ไม่บอกว่าทำอย่างไร

สรุป

คุณสมบัติClassInterface
Instantiateได้ไม่ได้
Multiple Inheritanceไม่ได้ (extends 1)ได้ (implements หลายตัว)
MethodsConcrete + AbstractAbstract (default/static ใน Java 8+)
Variablesทุกประเภทpublic static final เท่านั้น
Access Modifierspublic, private, protectedpublic (default)