Lập trình oop trong php

     

Ở bài viết trước họ đã tò mò về OOP vào PHP là gì và mình tất cả nói là OOP trong PHP có 4 tính chất. Trong bài viết này chúng ta sẽ với mọi người trong nhà tìm hiểu cụ thể về 4 đặc điểm này, tự đó giao hàng cho các bài tiếp theo.

Bạn đang xem: Lập trình oop trong php

*
4 đặc thù OOP trong PHP

1. Tính trừu tượng (abstraction)

Trừu tượng hóa là vượt trình dễ dàng và đơn giản hóa một đối tượng, mà trong những số ấy chỉ bao hàm những đặc điểm quan chổ chính giữa và bỏ qua những quánh điểm chi tiết nhỏ. Quy trình trừu tượng hóa tài liệu giúp ta xác minh được những thuộc tính, hành động nào của đối tượng cần thiết sử dụng đến chương trình.

Để làm rõ về tính trừu tượng chúng ta sẽ tò mò về Abstract class Interface.


Danh mục

1. Tính trừu tượng (abstraction)

1.1. Abstract class

Lớp Abstract sẽ định nghĩa những phương thức (hàm) nhưng từ đó các lớp nhỏ sẽ kế thừa nó và Overwrite lại (tính nhiều hình).

Đối cùng với lớp này thì nó sẽ có được các điểm không giống sau:


Các cách làm ( hàm ) khi được khai báo là abstract thì chỉ được định nghĩa chứ không hề được phép viết code cách xử trí trong phương thức.Trong abstract class nếu chưa hẳn là thủ tục abstract thì vẫn khai báo với viết code được như bình thường.Phương thức abstract chỉ rất có thể khai báo trong abstract class.Các ở trong tính vào abstract class thì ko được khai báo là abstract.Không thể khởi tạo ra một abstract class.Vì cần thiết khởi sinh sản được abstract class nên những phương thức được khai báo là abstract chỉ được khai báo ở tầm mức độ protected và public.Các lớp thừa kế một abstract class phải định nghĩa lại tất cả các cách thức trong abstract class đó(nếu không có khả năng sẽ bị lỗi).

Và để khai báo một abstract class ta sử dụng cú pháp sau:


1
2
3
4
5
abstract class ClassName


Trong đó: ClassName là tên của class chúng ta cần khai báo.

Cú pháp khai báo một phương thức abstract:


1
2
abstract visibility function methodName();

Trong đó: visibility là 1 trong 2 trường đoản cú khóa publicprotected hoặc có thể bỏ trống (bỏ trống thì là public), methodName là tên của phương thức bọn họ cần khai báo.

Ví dụ 1: khai báo một phương thức abstract trong abstract class


1
2
3
4
5
6
7
8
9
10
11
12
abstract class ConNguoi

//khai báo một abstract method đúng
abstract public function getName();
//Sai bởi vì abstract class bắt buộc viết code xử lý được
abstract public function getHeight()

//


Ví dụ 2: đề xuất định nghĩa lại các phương thức abstract của abstract class đó lúc kế thừa.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
abstract class ConNguoi

protected $name;
abstract protected function getName();

//class này sai vị chưa quan niệm lại cách làm abstracs getName
class NguoiLon extends ConNguoi

//

//class này đúng vị đã có mang lại rất đầy đủ các cách tiến hành abstract
class TreTrau extends ConNguoi

public function getName()

return $this->name;


1.2. Interface

Interface trong hướng đối tượng là một khuôn mẫu, giúp cho chúng ta tạo ra bộ khung cho 1 hoặc nhiều đối tượng người tiêu dùng và quan sát vào interface thì bọn họ hoàn toàn có thể xác định được những phương thức và những thuộc tính thắt chặt và cố định (hay nói một cách khác là hằng) sẽ có được trong đối tượng implement nó.

Để khai báo interface trong PHP chúng ta dùng cú pháp:


1
2
3
4
5
interface InterfaceName


Trong đó: InterfaceName là tên của interface các bạn muốn đặt.

Tính chất của interface


Interface không phải là một đối tượng.Trong interface chúng ta chỉ được khai báo cách tiến hành chứ ko được định nghĩa chúng.Trong interface chúng ta có thể khai báo được hằng nhưng thiết yếu khai báo biến.Một interface không thể khởi tạo được (vì nó không phải là một trong những đối tượng).Các lớp implement interface thì phải khai báo và tư tưởng lại những phương thức gồm trong interface đó.Một class có thể implements nhiều interface.Các interface có thể thừa kế lẫn nhau.

1.3. đối chiếu giữa interface và abstract class

Những điểm tương tự nhau thân interface cùng abstract class:

Đều tất yêu khởi tạo thành đối tượng.Đều có thể chứa phương thức abstract.

Những điểm không giống nhau:

InterfaceAbstract class
Chỉ hoàn toàn có thể kế thừa các interface khác.

Xem thêm: Bảng Chiều Cao Cân Nặng Chuẩn Của Bé Gái 16 Tháng Tuổi Cân Nặng Bao Nhiêu ?

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 có phần nội dungCó thể chứa những thuộc tính thường và các phương thức thông thường bên trong.
Không có constructor cùng cũng không tồn tại destructor.Có constructor và destructor.
Phạm vi truy cập mặc định là publicCó thể khẳng định modifier.
Dùng để tư tưởng 1 khuôn mẫu hoặc quy tắc chung.Dùng nhằm định nghĩa chủ chốt của lớp, thành phần thông thường của lớp và thực hiện cho nhiều đối tượng người tiêu dùng cùng kiểu.
Cần thời gian để kiếm tìm phương thức thực tế tương ứng cùng với lớp dẫn đến thời gian chậm rộng 1 chút.Nhanh rộng so với interface.
Khi ta thêm mới 1 khai báo. Ta nên 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 thức mới.Đối cùng với abstract class, lúc đĩnh nghĩa 1 phương thức mới ta hoàn toàn hoàn toàn có thể định nghĩa nội dung cách làm là rỗng hoặc những thực thi mặc định nào đó. Vì vậy toàn bộ khối hệ thống vẫn chạy bình thường.
Sự khác nhau giữa Interface cùng Abstract class

2. Tính thừa kế (inheritance)

Tính kế thừa trong lập trình phía đối tượng chất nhận được một lớp (class) có thể kế thừa các thuộc tính và cách tiến hành từ các 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.

Xem thêm: Tổng Hợp Các Công Thức Lý 10 Hk2, Hệ Thống Các Công Thức Vật Lý 10 Hkii

Điều này chất nhận được các đối tượng có thể tái sử dụng hay mở rộng các đặc tính sẵn gồm 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 chúng ta sử dụng tự khóa extends theo cú pháp: