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á.

Truong Pham viết 19:32 ngày 30/09/2018

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

hong duc viết 19:27 ngày 30/09/2018

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

Lập Trình Sư viết 19:27 ngày 30/09/2018

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

Nguyễn Huyền viết 19:39 ngày 30/09/2018

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

Tom Nguyen viết 19:38 ngày 30/09/2018

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)”

Bài liên quan
0