JavaScript is required

Trong C#, đâu là điểm khác nhau giữa lớp Trừu Tượng và Interface?

A.

A. Đều không thể tạo đối tượng bên trong được

B.

B. Đều khai báo phương thức nhưng không sử dụng chúng

C.

C. Đều có thể kế thừa từ lớp

D.
D. Đều có thể kế thừa từ nhiều Interface
Trả lời:

Đáp án đúng: A


Điểm khác biệt chính giữa lớp trừu tượng (Abstract Class) và Interface trong C#:

  • Lớp trừu tượng:
    • Có thể chứa các thành viên (fields, properties, methods) đã được triển khai (có code bên trong) hoặc chưa được triển khai (abstract).
    • Một lớp chỉ có thể kế thừa (inherit) từ một lớp trừu tượng duy nhất.
    • Có thể chứa các access modifier (public, private, protected, internal) cho các thành viên.
  • Interface:
    • Chỉ chứa các khai báo (signatures) của các thành viên (properties, methods, events, indexers) mà không có bất kỳ triển khai nào.
    • Một lớp có thể implement nhiều interface.
    • Các thành viên trong interface mặc định là public và không thể có access modifier khác.
  • Phân tích các đáp án:
    • A: Sai. Cả hai đều không thể tạo đối tượng trực tiếp bằng toán tử new. Tuy nhiên, có thể tạo ra instance thông qua lớp con kế thừa và triển khai.
    • B: Sai. Lớp trừu tượng có thể chứa các phương thức đã được triển khai.
    • C: Sai. Interface không thể kế thừa từ một lớp (class). Interface chỉ có thể kế thừa từ một hoặc nhiều interface khác. Lớp trừu tượng có thể kế thừa từ một lớp hoặc interface.
    • D: Đúng. Một lớp có thể implement nhiều interface. Đây là một trong những điểm khác biệt quan trọng nhất giữa interface và lớp trừu tượng.

Câu hỏi liên quan