Mục tiêu

Lớp Animal và interface Edible- Luyện tập thiết kế và triển khai mô hình lớp đối tượng sử dụng lớp trừu tượng và interface.

Điều kiện: Biết cách  sử dụng lớp trừu tượng và interface.

Mô tả- Lớp Animal và interface Edible

Để dễ dàng gọi (sử dụng) phương thức makeSound() của các đối tượng mô phỏng động vật, tạo lớp trừu tượng Animal.

Triển khai lớp Chicken và Tiger là lớp con của lớp Animal.

Để dễ dàng gọi (sử dụng) phương thức howToEat() của các đối tượng “ăn được”, tạo interface Edible. Cho lớp Chicken triển khai interface Edible.

Tạo lớp trừu tượng Fruit để mô phỏng các đối tượng “trái cây”, cũng là một Edible. Triển khai các lớp con Orange và Apple.

Giản đồ UML được thể hiện như sau:

Lớp Animal và interface Edible

Hướng dẫn

Bước 1: Xây dựng lớp Animal, Tiger, và Chicken

Lớp Animal: Tạo mới thư mục AbstractClass, trong đó tạo tệp PHP với tên Animal.php

Lớp Tiger: Tạo mới thư mục Animals, trong đó tạo mới tệp PHP với tên Tiger.php

Lớp Chicken: Trong thư mục Animals  tạo mới tệp với tên Chicken

Tại thư mục gốc tạo mới tệp với tên AbtractAndInterfaceTest để chạy thử.

Bước 2: Xây dựng  interface là Edible:

Tạo mới thư mục InterfaceClass, tạo tệp PHP mới với tên Edible.php

Sửa lại tệp Chicken.php

Sửa lại tệp AbtractAndInterfaceTest và chạy thử để xem kết quả.

Bước 3: Xây dựng lớp Fruit, Apple và Orange.

Trong thư mục AbstractClass, tạo tệp PHP với tên Fruits.php

Tạo thư mục Fruits, trong đó tạo tệp tin Apple.php có mã như sau:

Trong thư mục Fruits, tạo mới tệp Orange.php với mã như sau:

Sửa lại tệp AbtractAndInterfaceTest và chạy thử để xem kết quả.

Chạy và quan sát chương trình.

Mã nguồn tham khảo: https://github.com/codegym-vn/abstract-animal-interface-edible.git

Trên đây CodeGym đã cùng với bạn luyện tập thiết kế và triển khai mô hình lớp đối tượng sử dụng lớp trừu tượng và interface. Hãy chụp ảnh màn hình và nộp bài thực hành của bạn trên CodeGymX để cùng nhau luyện tập nhé!


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.