Khi nào dùng abstract class và interface trong java

các anh chị cho em hỏi trong trường hợp nào thì dùng abstract class và trường hợp nào dùng interface trong java thế ạ? Em thấy 2 cái này tương tự nhau quá.

Cần phân biệt đc Abstract class và Interface đã

1 Like

abstract class thì chỉ có thể đơn thừa kế, còn khi mún đa thừa kế thì dùng interface

2 Likes

muốn tạo cơ sở thiết lập thì tạo abstract class

muốn chuyển đổi object thành nhiều kiểu khác nhau thì dùng interface

1 Like

@laptrinhio a nói rõ hơn cho e với

Interface là tạo ra 1 khuôn mẫu chung, 1 interface chung để cho việc giao tiếp giữa các đối tượng trong chương trình một cách thống nhất. Có thể hiểu nó như 1 chuẩn nào đó. Khi một class implements từ nó => instance của class đó đạt chuẩn => các đối tượng của class khác có thể sử dụng các tình năng của đối tượng chuẩn đó mà không lo lắng nó thiếu function này nọ vì đã đạt chuẩn là bắt buộc phải có đủ các phương thức của chuẩn đó.

Abstract class => lớp trừu tượng => được sử dụng để implements các function của interface. Tuy nhiên do có mác trừu tượng nên nó sẽ bao gồm 1 vài function nào đó vẫn còn trừu tượng abstract function và chờ để các lớp thực tế (concrete class) triển khai cụ thể.

2 Likes

Tác giả của java từng viết trong một cuốn sách không nhớ tên là nếu có thể được làm lại, ông sẽ bỏ kế thừa trong java. Vậy nên chẳng cần abstract class đâu.
“Chương trình hướng đến cài đặt (interface) chứ không hướng đến triển khai (implement)”

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