Quay lại thư viện câu hỏi
oop Junior

Trong lập trình hướng đối tượng, sự khác biệt cốt lõi giữa Abstract Class và Interface là gì và tiêu chí nào để Junior lựa chọn trong dự án Enterprise?

Bản chất vấn đề

  • Abstract Class: Đại diện cho quan hệ 'Is-A', cho phép chia sẻ mã nguồn chung (state thông qua các biến instance và logic thông qua các phương thức có sẵn). Một lớp chỉ có thể kế thừa một Abstract Class.
  • Interface: Đại diện cho hợp đồng hành vi 'Can-Do', định nghĩa các phương thức mà lớp cài đặt bắt buộc phải có. Từ Java 8 trở lên, Interface hỗ trợ phương thức mặc định (default methods). Một lớp có thể cài đặt nhiều Interface.

Tiêu chí lựa chọn

  1. Sử dụng Abstract Class khi:
    • Cần chia sẻ mã nguồn, trạng thái (fields) chung giữa các lớp có họ hàng gần.
    • Cần kiểm soát quyền truy cập (protected, private modifiers) đối với các thành viên bên trong.
  2. Sử dụng Interface khi:
    • Cần định nghĩa các hành vi chung cho các lớp không có quan hệ họ hàng.
    • Áp dụng đa kế thừa hành vi (Multiple Inheritance of Type) trong thiết kế.

Lưu ý thực chiến

Junior thường dùng Abstract Class quá mức cần thiết. Hãy ưu tiên dùng Interface để giữ cho thiết kế lỏng lẻo (Loose Coupling) và dễ dàng viết Unit Test với Mock Objects.

Luyện tập câu hỏi này trong chế độ đếm ngược mô phỏng phỏng vấn thật:
Phòng Luyện Tập
Khóa học Chuyên sâu Chủ đề oop

Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp

Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.

Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)

Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.

High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học