Extend Và Implement Trong Php, Abstract Và Interfaces Trong Php

Từ khóa abstract luôn đứng trước class cần khai báo phương thức trừu tượng.Các class con kế thừa lớp Abstract bằng từ khóa extends.Ta có 3 cách khai báo function hợp lệ như bên dưới

Từ khóaluôn đứng trước class cần khai báo phương thức trừu tượng.Các class conlớp Abstract bằng từ khóa.Ta có 3 cách khai báo function hợp lệ như bên dưới

b. Khái niệm

Là một lớp có ít nhất một phương thức trừu trượng.Phương thức trừu tượng đơn giản là một lớp được khai báo tên nhưng chưa được định nghĩa. *

Là một lớp có ít nhất một phương thức trừu trượng.Phương thức trừu tượng đơn giản là một lớp được khai báo tên nhưng chưa được định nghĩa.

**

Tóm lại: Khai báo lớp Abstract để đó đã, xử lý gì thì để lớp con kế thừa lớp Abstract đấy rồi xử lý sau

Trong Lesstion 4 của chuỗi bài học PHP này tôi đã đề cập tới những quy tắc cần chú ý, xin được nhắc lại là:

Phương thức lớp con phải được định nghĩa với cùng tênkhai báo lại phương thức trừu tượng cha.Phương thức lớp con phải được xác định với công cụ (Public, protected, private) sửa đổi quyền truy cập giống hoặc ít bị hạn chế hơn. Tức là, nếu lớp cha trừu tượng được định nghĩa là protected thì lớp con kế thừa phải định nghĩa là protected hoặc public chứ không thể private.

Phương thức lớp con phải được định nghĩa vớivàphương thức trừu tượng cha.Phương thức lớp con phải được xác định với công cụ (Public, protected, private). Tức là, nếu lớp cha trừu tượng được định nghĩa là protected thì lớp con kế thừa phải định nghĩa là protected hoặc public chứ không thể private.

Bạn đang xem: Extend và implement trong php

Số lượng đối số bắt buộc phải giống nhau. Tuy nhiên, lớp con có thể có thêm các đối số tùy chọn

. Tuy nhiên, lớp con có thể có thêm các đối số tùy chọn

1.2. Interface

Nếu như abstract chỉ sự trừu tượng thì interface thể hiện sự đa hình của lập trình hướng đối tượng trong PHP.

a. Cú pháp Interface

Ta có thể hiểu, interface là giao diện.Trước class luôn có từ khóa interface.Để các lớp con có thể sử dụng phương thức interface thì cần có từ khóa implements đứng giữa.Cách khai báo và gọi hàm giống như abstract.

Ta có thể hiểu,.Trước class luôn có từ khóa.Để các lớp con có thể sử dụng phương thứcthì cần có từ khóađứng giữa.Cách khai báo và gọi hàm giống như abstract.

Xem thêm: tích hợp thanh toán visa vào website php

b. Khái niệm

Giao diện cho phép chỉ định một phương thức mà một lớp sẽ triển khai.Nhiều lớp có thể sử dụng cùng một giao diện – tính đa hình.Giao diện không có thuộc tính, các công cụ truy cập đều phải là public.

2. Ví dụ trực quan

2.1. Ví dụ về AbstractTự mình thử để thấy nó hoạt động như thế nào nhé.Tạo một file index.php, copy đoạn code dưới đây vào file đó, khởi động localhost (Xampp), gọi localhost trong trình duyệt với cú pháp:

Giao diện cho phép chỉ định một phương thức mà một lớp sẽ triển khai.Nhiều lớp có thể sử dụng cùng một giao diện – tính đa hình.Giao diện không có thuộc tính, các công cụ truy cập đều phải là2.1. Ví dụ về AbstractTự mình thử để thấy nó hoạt động như thế nào nhé.Tạo một file index.php, copy đoạn code dưới đây vào file đó, khởi động localhost (Xampp), gọi localhost trong trình duyệt với cú pháp:

Ai không biết có thể đọc Cách cài đặt xampp mà tôi đã viết lần đầu tiên khi bắt đầu khóa học này.

localhost:80/thu_muc_luu_tru/file.php

Thí dụ đường dẫn tôi dùng là: http://localhost:80/T3H/php/php-oop/php-oop-abstract/

Lưu ý:” :80 ” có thể sẽ bị ẩn đi khi thực hiện tìm kiếm nên các bạn không cần lo lắng rằng: “Ớ, sao lại không giống “

Lớp cha Fruits: Truyền một biến $name vào constructer và khởi tạo hàm intro() với thuộc tính trả về là một chuỗi

: Truyền một biếnvào constructer và khởi tạo hàmvới thuộc tính trả về là một chuỗi

Interface: Định nghĩa một hàm taste()

*

. Do đó, tôi đã có một vài sàng lọc như sau:Thuộc tính: Abstract có, Interface không có.Công cụ truy cập: Abstract dùng protected và public, Interface chỉ dùng public.Vốn dĩ các phương thức trong giao diện là trừu tượng nên nếu bạn triển khai những phương thức này trong phương thức Abstract là không cần thiết.Các lớp vừa triển khai một Interface nhưng cũng có thể kế thừa một lớp khác, thí dụ:

class Lemon extends Fruits implements Fruits1

Oops! We done!

Trên đây là tất cả những gì tôi tìm hiểu và rút ra được nên sẽ vẫn có những sai sót, cầu các cao nhân chỉ giáo thêm ạ

*