Thứ Năm, 5 tháng 1, 2012

Vấn đề đa hình trong Java – Phân biệt abstract và interface

abstract (lớp trừu tượng):
class không cụ thể, chứa những method nhưng không có dòng lệnh thi hành phương thức đó, việc thi hành method được giao lại cho các lớp kế thừa lớp đó
Một lần nữa chúng ta khẳng định abstract là một class không thể biết và định nghĩa các phương thức nhưng không có sự thi hành cụ thể, việc thi hành các phương thức này được giao lại cho các class kế thừa.
Ví dụ:
thức ăn là một class trừu tượng cho các class cụ thể như cơm, cháo.
Class thức ăn có phương thức mùi vị nhưng khi nói mùi vị của thức ăn chung chung ta không định nghĩa được, nhưng class cơm kế thừa từ class thức ăn thì có mùi vị là khô, class cháo có mùi vị là có mùi vị là lỏng
interface (giao diện):
Interface là giao diện của một lớp đối tượng. Interface của một class là phần đặc tả các method của class đó nhưng không bao gồm phần cài đặt, việc cài đặt các method này được giao lại cho các class kế thừa từ các interface này.
Một class kế thừa một interface nào thì bắt buộc phải cài đặt tất cả các method của interface đó
Một đối tượng có thể đưa ra nhiều interface của mình, và class kế thừa interface nào phải cài đặt đầy đủ các method của interface đó. Java không cho phép đa kế thừa (một class của Java không thể có hơn một class cha) nhưng nhờ đặc điểm này (interface) cho phép cài đặt nhiều giao diện để thừa hưởng thêm các vùng và method của những interface này.
Interface được khai báo như là một lớp nhưng các thuộc tính là hằng (final) và các phương thức là abstract (có nghĩa là các phương thức đều rỗng dù không có từ khóa abstract) và trong các lớp sử dụng interface phải cài đặt các phương thức này
Để một class kế thừa một giao diện ta dùng từ khóa implements (thay vì extends)

Không có nhận xét nào:

Đăng nhận xét