So sánh giữa abstract class với interface

Em có tìm hiểu về thuật ngữ trên vẫn chưa hiểu về abstract class và interface
Anh chị cho em hỏi sự giống và khác nhau của abstract class với interface? Cho em ví dụ về 2 cái đó nếu bằng ngôn ngữ C/C++ thì càng tốt ạ

Abstract class là class. Trong một class có thể có các phương thức không phải abstract.
Interface là tập hợp các phương thức. Tất cả các phương thức đó đều là abstract.

Abstract class vẫn có thể có thuộc tính và hàm không virtual (nhưng phải có pure virtual =0). Interface hoàn toàn không có thuộc tính và tất cả hàm đều là pure virtual =0. Không có thuộc tính thì không bị diamond :smiley:

(thực ra cũng khá chối vì C++ không quy định (hay có từ khóa) interface)

1 Like

Trong Java interface vẫn có thể có thuộc tính, nhưng tất cả đều là public static final :joy:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?