Lớp trừu tượng và phương thức trừu tượng

Một phần của tài liệu Bài giảng Ngôn ngữ lập trình Java: Phần 1 - TS. Vũ Hữu Tiến (Trang 61 - 62)

Trong ví dụ về nhóm động vật ở phần trước, ta hoàn toàn có thể khai báo và khởi tạo ra các đối tượng cho các lớp với tên và tuổi. Ví dụ :

Dog d = new Dog(‘‘Jack ’’, 3) ; Cat c = new Cat(‘‘Tom’’,4) ;

Trong trường hợp ta muốn tạo một đối tượng kiểu Animal thì hàm khởi tạo phải như thế nào ? Rõ ràng, Animal ở đây là một động vật trừu tượng không có tên, tuổi, đặc điểm cụ thể để ta có thể khởi tạo một đối tượng cụ thể kiểu Animal. Trong trường hợp này, ta có thể gọi lớp Animal là lớp trừu tượng.

Ví dụ khai báo lớp trừu tượng :

Như vậy, việc sử dụng lớp trừu tượng có mục đích như sau :

- Khi ta muốn tạo một lớp nhưng không muốn ai đó sử dụng để tạo các đối tượng cụ thể.

- Khi ta muốn sử dụng tính đa hình cho một nhóm các lớp thì ta cho các lớp đó cùng kế thừa một lớp trừu tượng.

Không chỉ có lớp, ta còn có thể khai báo các phương thức trừu tượng trong lớp trừu tượng. Một lớp trừu tượng có nghĩa phải tạo lớp con cho nó, còn một phương thức trừu tượng có nghĩa nó phải được cài đè ở lớp con. Như vậy, khi ta muốn tất cả các lớp con của lớp trừu tượng bắt buộc phải viết lại cụ thể phương thức nào đó của lớp cha thì ta để phương thức này là phương thức trừu tượng. Ví dụ, nếu là lớp con của lớp Animal thì đều có phương thức là “kêu”. Tuy nhiên, phương thức “kêu” của các lớp Dog, Cat, Lion,… đều khác nhau. Do đó ta có thể để phương thức “kêu” của lớp Animal là phương thức trừu tượng.

62 Java quy định phương thức trừu tượng không có thân phương thức. Dòng khai báo phương thức kết thúc bằng dấu chấm phảy và không có cặp ngoặc {}.

Ví dụ khai báo phương thức trừu tượng :

public abstract void eat() ;

Trong một lớp trừu tượng có thể có cả phương thức cụ thể và phương thức trừu tượng.

Một phần của tài liệu Bài giảng Ngôn ngữ lập trình Java: Phần 1 - TS. Vũ Hữu Tiến (Trang 61 - 62)