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 ต้องทำอะไร ไม่บอกว่าทำอย่างไร
สรุป
| คุณสมบัติ | Class | Interface |
|---|---|---|
| Instantiate | ได้ | ไม่ได้ |
| Multiple Inheritance | ไม่ได้ (extends 1) | ได้ (implements หลายตัว) |
| Methods | Concrete + Abstract | Abstract (default/static ใน Java 8+) |
| Variables | ทุกประเภท | public static final เท่านั้น |
| Access Modifiers | public, private, protected | public (default) |