Đóng gói — Kế thừa — Đa hình — Trừu tượng (Encapsulation, Inheritance, Polymorphism, Abstraction).
- Đóng gói (Encapsulation): gom dữ liệu + method thao tác vào cùng class; ẩn nội bộ qua
private, chỉ lộ method nghiệp vụ. Hình dung: chai thuốc có nhãn — bạn không cần biết công thức để uống đúng liều. - Kế thừa (Inheritance): class con
extendsclass cha, dùng lại field + method.Dog extends Animal→ có sẵnname,eat(). Lưu ý: kế thừa gây coupling chặt — ưu tiên composition khi có thể. - Đa hình (Polymorphism): một interface, nhiều hành vi. Compile-time = overloading; runtime = overriding (
Animal a = new Dog(); a.speak()gọi bản của Dog). - Trừu tượng (Abstraction): lộ "làm được gì", giấu "làm thế nào". Hiện thực qua abstract class hoặc interface. Hình dung: tài xế biết quay vô-lăng, không cần hiểu hộp số.
Bốn tính chất gắn kết nhau: Trừu tượng đặt ra contract → Đóng gói giấu chi tiết → Kế thừa dùng lại → Đa hình thay implementation. Mục đích chung: giảm coupling, dễ test, dễ sửa.