Tính đa hình trong oop php

Tại bài bác phát âm trước bọn chúng vẫn đã thuộc tò mò về tính kế thừa vào thiết kế hướng đối tượng. Hôm nay chúng ta vẫn khám phá về Tính nhiều hình vào php nhé.

Bạn đang xem: Tính đa hình trong oop php

Nội dung

Nếu độc giả giỏi bài bác này bạn sẽ gọi với luôn ghi nhớ được:

Tính nhiều hình là gì?Nhận biết tính nhiều hình vào thực tế.Ứng dụng tính nhiều hình vào thực tế

điểm sáng tính đa hình vào PHP (Polymorphism)

Tính đa hình là 1 trong những trong số những quan niệm xuất xắc vào lập trình sẵn hướng đối tượng người sử dụng. Từ “Polymorphism” được chế tạo ra bắt nguồn từ 2 trường đoản cú của Hy Lạp đó là “Poly” cùng “morph”. ý ngĩa của tự poly là nhiều (many) với morph là dạng “forms”. Nó bao gồm ngĩa là có chức năng diễn tả sinh sống nhiều dạng vào cùng 1 cách thức (have many forms).

Nói đơn giản thì tính đa hình được mô tả trong các ngôi trường hòa hợp sau:

Ghi đè cổ cách thức. khi bọn họ ao ước viết lại phương thức (function) phụ thân.Nạp chồng cách thức. Là Lúc chúng ta mong muốn thực hiện điều gì trước khi trước hoặc sau function thân phụ, vấn đề này được miêu tả Khi họ ghi đnai lưng function và chúng ta Điện thoại tư vấn lại function thân phụ (dạng parent::todo()).Viết 1 bản thiết kế cho các class có thông thường cách thức vận động. lúc thông thường ta thực hiện Interface và abstract
*

Cú pháp:

Giải thích: Đoạn mã code trên họ tất cả 2 lớp (class). class Square và class Circle được tiến hành những phương thức phổ biến trường đoản cú class Painter. cùng bọn chúng đều phải sở hữu cách tiến hành (function) dawning tuy vậy chúng thực hiện nhiệm vụ khác nhau. sống class Square bọn chúng vẽ ra hình vuông vắn, với class Circle chúng vẽ ra hình tròng

Ứng dụng tính đa hình vào trong 1 vài ba ví dụ.

do đó chúng ta cũng hiểu bao hàm được xem nhiều hình vào PHP. Hãy cùng tiếp cận đều ví dụ không giống để rõ hơn nhé.

Xem thêm: How To Select An Option By Its Option Text Using Jquery ? How To Get Selected Text From A Drop

Ví dụ 1 (Interface):

Mình vẫn thực hiện Interface nhằm thi công phần nhiều phương thức phổ biến cho những class.

Đặc điểm:

Interface không hẳn là class, nó chỉ áp dụng nhằm khai báo những cách thức.Nó không hẳn là một lớp đề xuất không hẳn định nghĩa những thuộc tính (Attributes), khởi chế tác đối tượng mà chỉ khai báo bằng cách tiến hành.Không gồm khái niệm phạm vi cách làm, toàn bộ phần nhiều buộc phải là public.Chỉ knhị bao các hàm chứ không có thể viết nội dung bên phía trong hàm.Nó được xem như bản xây cất của class vì đầy đủ class implements lại nó gần như nên ghi đè cổ toàn bộ những cách tiến hành bên trong.Một lớp rất có thể thừa kế những interface khác biệt bằng cách thực hiện implementsVì vậy nó còn được xem như là bản thiết kế của các class.

Cú pháp:

Giải thích:

Trong ví dụ trên chúng ta bao gồm DatabaseTable interface với 2 class là Post cùng Category Implements lại interface đó.Tất cả những function vào DatabaseTable thì 2 class Post cùng Category đông đảo phải viết ghi đè lên trên.Là phiên bản kiến tạo sẵn của 2 class Post với Category

lấy ví dụ như 2 (Abstract).

Xem thêm: Bí Quyết Thiết Kế Homestay, Cách Thiết Kế Homestay Tối Ưu Nhất Cho Chủ Đầu Tư

Đặc điểm:

Abstract được xem là lớp cha cho những lớp con bao gồm thuộc bản chấtCác lớp nhỏ thừa kế lớp phụ vương bằng phương pháp thực hiện extends.Các lớp bé được thừa kế trường đoản cú trưu tượng đề xuất hoàn toàn có thể ghi đè cổ những cá cách làm trưu tượng kia.Không chất nhận được khởi sản xuất tmê mệt số cho những ở trong tính.Abstract chỉ được dùng làm kế thừa chđọng cần yếu khởi chế tạo ra đối tượng người tiêu dùng new đến nó (ví dụ Animal là abstract thì chúng ta thiết yếu khởi tạo $animal = new Animal())

Cú pháp:

name = "real name"; } public function update() public function delete()}class Post extends DatabaseTable public function create() emang lại "the post has been created"; public function delete() emang đến "the post has been deleted"; public function anotherFunction() echo "another has been created"; class Category extends DatabaseTable public function delete() emang lại "the category has been deleted"; public function update() emang đến "the category has been updated"; public function anotherFunction() emang lại "another has been created"; Giải thích:

Class Post cùng Category được thừa kế trường đoản cú abstract DatabaseTable.Các class được kế thừa ko độc nhất vô nhị thiết nên gì đnai lưng hết phương thức của class cha.rất có thể khai báo các attributes phía bên trong class như thể $name cùng $nickName

Vậy đâu là sự việc không giống nhau của interface với abstract?

Chúng ta nhìn qua thì interface cùng abstract có khá nhiều điểm sáng kiểu như nhau. Vậy sự khác nhau của chúng là gì mà lại mục tiêu sử dụng là như thế nào?

Abstract là phiên bản thi công mang đến class bao hàm cả attribute cùng method. Chúng không tồn tại ràng phải ghi đè toàn bộ những cách làm.Interface là bản kiến thiết cho method bên phía trong class. Tất cả các method vào interface đều bắt buộc ghi đtrằn làm việc class implements lại nó.

Kết luận

Trong bài xích trả lời này, tôi sẽ giới thiệu tới các bạn về tính chất nhiều hình với phân tích và lý giải về interface, abstract vào PHPhường.

Hy vọng các bạn sẽ nhận ra rằng tôi new chỉ diễn đạt cho mình thấy sức khỏe của nhiều hình nghỉ ngơi một số trường hòa hợp.

Còn khôn xiết, không hề ít phương pháp để vận dụng nó. Đa hình là một cách thức chuẩn chỉnh mực để giải pháp ly mã xấu thoát ra khỏi mã xây dựng phía đối tượng của người sử dụng. Nó vâng lệnh cơ chế giữ lại những yếu tắc bóc tách bạch, với là 1 phần không thể không có của không ít mô hình xây đắp (kiến thiết pattern). Nếu các bạn bao gồm ngẫu nhiên câu hỏi như thế nào, chớ ngại giữ lại comment nhé!

Tài liệu tsi khảo:

https://viblo.asia/p/cach-dung-abstract-class-va-interface-trong-php-djeZ1VVGlWzhttps://www.educbố.com/polymorphism-in-php/


Chuyên mục: