theo dõi

Gần nhất :

Thống kê câu hỏi

Chuyên mục : Lập trình
Topic : Java
Hỏi lúc:
Lượt xem: 1,687

Phân biệt interface với abstract class

Trọng Linh Trọng Linh
 08  05  00
04 bình chọn hữu ích bởi Trịnh Mỹ Nga, Vũ Mạnh Cường Tieu Cong Hau ... (tất cả)

Hôm trước đi phỏng vấn, bạn mình về bảo công ty nào cũng hỏi

Phân biệt interface với abstract class trong java.

Mình đọc nhiều tài liệu mà hoa hết cả mắt, 

Ai tóm tắt bằng tiếng việt giúp mình với,

Hi vọng chuẩn bị đi phỏng vấn được ngon nghẻ.

1,687 xem 02 theo dõi 04 hữu ích hỏi –

Bạn biết ai đó có thể trả lời câu hỏi này?. Bạn có thể giúp đỡ bằng cách tìm những người giỏi nhất:

user user user user user

Phan Thanh Giang Phan Thanh Giang
 00  00  06

Phân biệt Interface với abstract trong java:

  1. Tất cả phương thức trong interface là abstract (trừu tượng). Nhưng, trong lớp abstract có thể chứa cả phương thức abstract hoặc không abstract (non-abstract).
  2. Abstract class có thể có nhiều method đã được implementation, trong khi interface chỉ define ra những abstract method (không thực hiện implementation).
  3. Abstract class có thể có những contructor, trong khi interface không có bất kỳ một contructor nào.
  4. Một lớp có thể cài đặt (implement) nhiều interface, nhưng chỉ được kế thừa (extend) một lớp abstract. Interface không thể extends từ một class, chỉ extends từ một hoặc nhiều interface khác.
  5. Để cài đặt một interface, lớp đó phải cài đặt tất cả các hàm được định nghĩa trong interface. Một lớp extend một lớp trừu tượng có thể không cần định nghĩa lại (override) các hàm non-abstract nhưng bắt buộc phải override các hàm abstract. Nếu lớp con cũng là một lớp abstract thì không cần định nghĩa lại hàm nào cả.
  6. Lớp abstract có thể cài đặt một interface mà không cần cài đặt bất kỳ hàm nào của interface đó (do mặc định các hàm của interface là public abstract, các lớp con khi sử dụng phải override lại các hàm này).
  7. Các biến được định nghĩa trong interface mặc định là final, còn lớp abstract thì có thể không final (non-final).
  8. Các thành phần của abstract class có thể sử dụng những access modifiers như private, protected, default, public, static nhưng method của interface chỉ sử dụng public và asbtract.
  9. Interface là thuần trừu tượng, không thể tạo thực thể cho nó. Một lớp abstract cũng không thể tạo thực thể, nhưng nó có thể được gọi nếu chứa hàm main.

Tham khảo: http://vietjack.com/java/lop_abstract_va_interface_trong_java.jsp

837 xem 00 hữu ích trả lời –