30/09/2018, 17:24
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á.
Bài liên quan
Cần phân biệt đc Abstract class và Interface đã
abstract class thì chỉ có thể đơn thừa kế, còn khi mún đa thừa kế thì dùng interface
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
@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ể.
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)”