Lập trình hướng đối tượng trong php

     

Ở bài viết trước họ đã mày mò về OOP vào PHP là gì cùng mình bao gồm nói là OOP trong PHP có 4 tính chất. Trong bài viết này họ sẽ cùng nhau tìm hiểu chi tiết về 4 tính chất này, từ bỏ đó phục vụ cho các bài tiếp theo.

Bạn đang xem: Lập trình hướng đối tượng trong php

*
4 đặc điểm 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 các số đó chỉ bao hàm những đặc điểm quan trọng tâm và làm lơ những sệt điểm chi tiết nhỏ. Quá trình trừu tượng hóa dữ liệu giúp ta xác định được phần đa thuộc tính, hành vi nào của đối tượng cần thiết sử dụng đến chương trình.

Để hiểu rõ về tính trừu tượng bọn họ sẽ mày mò về Abstract class Interface.


Danh mục

1. Tính trừu tượng (abstraction)1.1. Abstract class1.2. Interface1.3. đối chiếu giữa interface và abstract class2. Tính kế thừa (inheritance)3. Tính đóng gói (encapsulation)4. Tính nhiều hình (polymorphism)5. Kết luận

1.1. Abstract class

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

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


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

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


1
2
3
4
5
abstract class ClassName


Trong đó: ClassName là thương hiệu của class họ 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 từ 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 vào 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 do abstract class quan trọng viết code xử trí được
abstract public function getHeight()

//


Ví dụ 2: buộc phải định nghĩa lại những phương thức abstract của abstract class đó khi 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 bởi chưa khái niệm lại cách làm abstracs getName
class NguoiLon extends ConNguoi

//

//class này đúng vì chưng đã có mang lại không hề thiếu 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 người tiêu dùng là một khuôn mẫu, giúp cho chúng ta tạo ra cỗ khung cho một hoặc nhiều đối tượng người tiêu dùng và chú ý vào interface thì họ hoàn toàn có thể xác định được các phương thức và những thuộc tính thắt chặt và cố định (hay còn được gọi là hằng) sẽ có trong đối tượng người sử dụ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 hóa học của interface


Interface không phải là một đối tượng.Trong interface chúng ta chỉ được khai báo thủ tục chứ không được khái niệm chúng.Trong interface chúng ta rất 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 nên (vì nó không phải là 1 đối tượng).Các lớp implement interface thì đề nghị khai báo và có mang lại những phương thức có 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 như thể nhau thân interface với abstract class:

Đều quan yếu khởi sản xuất đối tượng.Đều rất có thể chứa thủ tục abstract.

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

InterfaceAbstract class
Chỉ rất có thể kế thừa những interface khác.

Xem thêm: Bản Mô Tả Công Việc Marketing Online Làm Gì? Lương Có Cao Không?

Có thể kế thừa từ là 1 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 dungCó thể chứa những thuộc tính hay và các phương thức thông thường bên trong.
Không tất cả constructor cùng cũng không tồn tại destructor.Có constructor cùng destructor.
Phạm vi truy cập mặc định là publicCó thể xác minh modifier.
Dùng để khái niệm 1 khuôn mẫu hoặc nguyên tắc chung.Dùng để định nghĩa mấu chốt 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 cùng kiểu.
Cần thời hạn để search phương thức thực tiễn tương ứng cù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 bắt đầu 1 khai báo. Ta phải tìm hết tất cả những lớp có triển khai interface này để định nghĩa ngôn từ cho cách tiến hành mới.Đối cùng với abstract class, khi đĩnh nghĩa 1 phương thức bắt đầu ta trả toàn hoàn toàn có thể định nghĩa nội dung thủ tục là rỗng hoặc những xúc tiến mặc định làm sao đó. Chính vì như thế toàn bộ hệ thống vẫn chạy bình thường.
Sự không giống nhau giữa Interface cùng Abstract class

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

Tính thừa kế trong lập trình phía đối tượng cho phép một lớp (class) hoàn toàn có thể kế thừa những thuộc tính và cách thức từ những lớp khác đã làm được định nghĩa. Lớp được kế thừa nói một cách khác là lớp thân phụ và lớp thừa kế được điện thoại tư vấn là lớp con.

Điều này có thể chấp nhận được các đối tượng có thể tái thực hiện hay không ngừng mở rộng các công năng sẵn gồm mà ko phải tiến hành định nghĩa lại.

Trong PHP nhằm khai báo kế thừa xuất phát điểm từ 1 lớp cha bọn họ sử dụng từ bỏ khóa extends theo cú pháp:


Chuyên mục: Domain Hosting