Vấn đề đa hình trong Java – Phân biệt abstract và interface
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