Ở nội dung bài viết trước bọn họ đã tò mò về OOP trong PHP là gì cùng mình tất cả nói là OOP vào PHP gồm 4 tính chất. Trong bài viết này bọn họ sẽ cùng mọi người trong nhà tìm hiểu chi tiết về 4 đặc điểm này, từ bỏ đó ship hàng cho các bài tiếp theo.
Bạn đang xem: Lập trình hướng đối tượng (oop) trong php
Trừu tượng hóa là thừa trình dễ dàng hóa một đối tượng, mà trong đó chỉ bao hàm những đặc điểm quan vai trung phong và bỏ qua mất những quánh điểm cụ thể nhỏ. Quy trình trừu tượng hóa tài liệu giúp ta xác định được hầu hết thuộc tính, hành vi nào của đối tượng quan trọng sử dụng mang lại chương trình.
Để hiểu rõ về tính trừu tượng bọn họ sẽ khám phá về Abstract class và Interface.
Lớp Abstract sẽ định nghĩa những phương thức (hàm) nhưng mà từ đó các lớp bé sẽ kế thừa nó và Overwrite lại (tính nhiều hình).
Đối với lớp này thì nó sẽ sở hữu các điểm khác sau:
Và để khai báo một abstract class ta dùng cú pháp sau:
Trong đó: ClassName là thương hiệu của class bọn họ cần khai báo.
Cú pháp khai báo một phương thức abstract:
Trong đó: visibility là một trong 2 trường đoản cú khóa public, protected hoặc có thể bỏ trống (bỏ trống thì là public), methodName là tên gọi của phương thức họ cần khai báo.
Ví dụ 1: khai báo một cách tiến hành abstract trong abstract class
Ví dụ 2: phải định nghĩa lại các phương thức abstract của abstract class đó lúc kế thừa.
Interface trong hướng đối tượng là một khuôn mẫu, góp cho họ tạo ra cỗ khung cho 1 hoặc nhiều đối tượng và quan sát vào interface thì chúng ta hoàn toàn hoàn toàn có thể xác định được các phương thức và những thuộc tính cố định và thắt chặt (hay có cách gọi khác là hằng) sẽ có được trong đối tượng người tiêu dùng implement nó.
Để khai báo interface trong PHP bọn họ dùng cú pháp:
Trong đó: InterfaceName là thương hiệu của interface các bạn có nhu cầu đặt.
Tính hóa học của interface
Những điểm như là nhau giữa interface cùng abstract class:
Đều chẳng thể khởi tạo đối tượng.Đều có thể chứa phương thức abstract.Những điểm không giống nhau:
Chỉ hoàn toàn có thể kế thừa những interface khác. | Có thể kế thừa từ là một lớp và các interface. |
Chỉ chứa những khai báo và không tồn tại phần nội dung | Có thể chứa các thuộc tính hay và những phương thức bình thường bên trong. |
Không tất cả constructor với cũng không tồn tại destructor. | Có constructor với destructor. |
Phạm vi truy vấn mặc định là public | Có thể khẳng định modifier. |
Dùng để khái niệm 1 khuôn mẫu mã hoặc phép tắc chung. | Dùng để định nghĩa chủ công của lớp, thành phần thông thường của lớp và sử dụng cho nhiều đối tượng người tiêu dùng cùng kiểu. |
Cần thời hạn để tìm kiếm phương thức thực tế tương ứng với lớp dẫn đến thời gian chậm hơn 1 chút. | Nhanh rộng so cùng với interface. |
Khi ta thêm mới 1 khai báo. Ta bắt buộc tìm hết toàn bộ những lớp có xúc tiến interface này nhằm định nghĩa nội dung cho cách tiến hành mới. | Đối với abstract class, lúc đĩnh nghĩa 1 phương thức mới ta trả toàn hoàn toàn có thể định nghĩa nội dung cách thức là rỗng hoặc những thực hiện mặc định như thế nào đó. Chính vì như vậy toàn bộ khối hệ thống vẫn chạy bình thường. |
Tính thừa kế trong lập trình hướng đối tượng có thể chấp nhận được một lớp (class) có thể kế thừa những thuộc tính và thủ tục từ những lớp khác đã có định nghĩa. Lớp được kế thừa còn được gọi là lớp thân phụ và lớp kế thừa được hotline là lớp con.
Điều này cho phép các đối tượng hoàn toàn có thể tái áp dụng hay mở rộng các công năng sẵn có mà không phải triển khai định nghĩa lại.
Trong PHP để khai báo kế thừa xuất phát điểm từ 1 lớp cha bọn họ sử dụng tự khóa extends theo cú pháp: