What is the different between Interface and Abstract class?

21:31




Abstract class (Lớp trừu tượng) có thể hiểu là một class cha cho tất cả các Class có cùng bản chất. Do đó mỗi lớp con chỉ có thể kế thừa từ một lớp trừu tượng. Abstract class không cho phép tạo các thể hiện ( instance), vì vậy bạn không thể khởi tạo một đối tượng trực tiếp từ một Abstract class.


Interface có thể được xem như một mặt nạ cho tất cả các Class cùng cách thức hoạt động nhưng có thể khác nhau về bản chất. Từ đó lớp con có thể kế thừa từ nhiều Interface để bổ sung đầy đủ cách thức hoạt động của mình (đa kế thừa - Multiple inheritance).

ABSTRACT
INTERFACE
Abstract Class là "khuôn mẫu" cho ClassInterface chứa các "khuôn mẫu" cho Method
Abstract class có thể chứa thêm các Method đã được triển khai hoặc các biến hằng có giá trị vì vậy có thể run một Abstract nếu nó có phương thức Main.Interface không thể chứa các Method đã được triển khai, nó chỉ chứa các biến không có giá trị => Không thể run một interface.
Phương thưc của abstract class có thể sử dụng những access modifiers như private, protected, default, public, staticPhương thức của interface không cần khai báo access modifiers vì chúng chỉ sử dụng public, asbtract và đã được mặc định.
Lớp con phải định nghĩa lại (Override)các phương thức trừu tượng (Có khai báo với từ khóa Abstract ), các phương thức thường không cần phải định nghĩa lại.Các lớp con của Interface sẽ phải định nghĩa lại toàn bộ các phương thức có trong Interface, (Mặc định các phương thức trong Interface đều là phương thức trưu tượng - Abstract method)
Một lớp con của lớp trừu tượng chỉ được thừa kế 1 lớp cha là lớp trừu tượng (Dùng từ khóa extends để kế thừa).Một lớp con có thể thừa kế nhiều Interface cùng một lúc (Dùng từ khóa implement)
Abstract class có thể kế thừa abstract class khác và implement nhiều interfaceInterface chỉ có thể kế thừa nhiều interface.

You Might Also Like

0 nhận xét

Popular Posts

Like us on Facebook

Flickr Images

Subscribe