Hướng dẫn dùng inheritamce trong PHP
Visibility là một phần rất quan trong của OOP. Nó cho phép bạn kiểm soát thành viên nào có thể truy cập vào class, để ngăn chặn sự sửa đồi variable từ bên ngoài chẳng hạn. Bình thường thì visibility được đặt là Public, có nghĩa là thành viên nào cũng có thể truy cập vào class. Điều này có nghĩa, bạn không nhất định phải chỉnh visibility, nếu không có access modifier thì theo default visibility sẽ là public. Visibility trong PHP khá đơn giản vì chỉ có 3 loại khác nhau:
InheritanceInheritance là một chức năng rất quan trong của OOP. Nó cho phép class thừa hưởng member của class khác. Có thể bạn quan tâmVí dụ bạn cần tạo ra class cho các loại động vật. Bạn có thể tạo class cho mè, chó vân vân, nhưng bạn sẽ nhận ra rằng các class này có một số function giống nhau, và một số function đặc biệt cho laoij động vật đó. Inheritance sé giúp bạn trong tình huống này. Bạn tạo ra một base class – Động vât (Animal) sau đó tạo class con cho các loài động vật bạn cần. Bạn hãy xem ví dụ sau:
Rất đơn giản, nhưng “Some sort of animal” (một loại động vật nào đó) thì chưa đủ, chúng ta sẽ tạo class con cho loài chó:
Loài chó được tạo ra như bình thường, nhưng chúng ta cần từ khóa để PHP hiểu là class loài cho cần inherit từ class Animal. Bây giờ, class loài chó sẽ có function như của class Animal:
Bạn sẽ thấy là chúng ta có function Greet(), nhưng vẫn hơi chung chung, nên chũng ta sẽ viết thêm thông tin vào phần này:
Như các bạn thấy, chúng tôi đã gọi lại function Greet(), vì chúng tôi cần làm vậy cho một thứ khác, nhưng class variable $name thì khhoong được gọi lại, vì chúng ta đã làm vậy ở class Animal. Chúng ta không cần $name, nhưng Greet() trong class Dog vẫn sẽ làm việc bình thường. Bây giờ chúng ta sẽ thử code:
Bạn có thể tiếp tục dùng Inheritance cho class con của class Dog, class chó con chảng hạn. Như vậy class chó con sẽ có variable và method của cả class Dog và class Animal. Abstract classAbstract class rất đặc biệt vì bạn không tự khởi tạo chúng được. Thay vào đó, bạn thừa hưởng function từ abstract class sang một class mới. Vì vậy, chúng ta hay dùng chúng làm base class cho một hệ thông class con khác. Trong phần trước chúng ta đã tạo class Animal và class con Dog. Trong dự án của bạn, bạn sẽ không khởi tạo class Animal, mà sẽ tạo class con cụ thể hơn. Class Animal sẽ trở thành base class cho bộ sưu tầm động vật của chúng ta. Method cũng có thể được gọi là abstract. Khi bạn goi class function là abstract, bạn phải gọi class là abstract, abstract function chỉ có thể ở trong abstract class. Một vấn đề khác là bạn không được viết code cho function, chỉ có thể gọi nó ra. Bạn làm vậy để bắt buộc bất kỳ ai thừa hưởng từ abstract class của bạn phải dùng function này và viết code đngs. Nếu không, PHP sẽ báo lỗi. Nhưng abstract classes cũng có thể có không abstract method, cho phép bạn dùng một số function đơn giản trong abstract class. Ví dù dưới đây là một abstract class:
Sự khác biệt đầu tiên là từ khóa abstract, được đặt ở class và function cuối cùng của class. Như đã được đề cập, abstract function không được phép có code, vì vậy nó kết thúc với giấu chấm phẩy. Bây giờ chúng ta sẽ tạo cas con cho class Animal:
Như bạn thấy, chúng tôi dùng cả hai function từ class Animal. Chúng tôi bắt buộc phải dùng function Greet() vì nó là abstract. Chúng ta không nhất định phải dùng function Describe()-vì function này đã được dùng ở class Animal, nhưng chúng tôi muốn mở rộng nó thêm một chút. Điều thú vị ở đây là chúng ta có thể sử dụng lại code trong class Animal. Ví dụ ở đây là dùng từ khóa ‘parent’ để nối đến class Animal và gọi function Describe(). Chúng ta viết thêm nội dung để nói rõ về loài động vật chúng ta đang tạo. Bậy giờ ta thử dùng class mới này:
Không có gì là quá đặc biệt. Chúng ta đã tạo class Dog, tạo hai property và gọi thêm hai method. Khi bạn thử code này, bạn sẽ thấy dòng Describe() là sự kết hợp của cả phiên bản Animal và Dog. |
Bài Viết Liên Quan
How do you convert int to string without using library functions in python?
def int_to_str(num): is_negative = False if num: num, is_negative = -num, True s = [] while True: s.append(chr(ord(0) + num % 10)) num //= 10 if num ...
Hướng dẫn mysql command line
Đối với người sử dụng linux thì việc sử dụng MySQL commandline là thường xuyên, bài viết này sẽ hướng dẫn bạn làm quen với mysql commandline. Đặt password ...
Report on non linear data structure in python
AbstractA Non-Linear Data Structure is one in which its elements are not connected in a linear fashion, as suggested by its name itself. In such a data structure elements might be connected in a ...
Hướng dẫn dùng python np python
Numpy (Numeric Python): là một thư viện toán học phổ biến và mạnh mẽ của Python. Cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu ma ...
Download điểm thi thpt quốc gia 2023
Công bố điểm thi tốt nghiệp 2022 là câu hỏi được rất nhiều thí sinh quan tâm hiện nay. Theo Bộ giáo dục và đào tạo, thời gian công bố điểm thi tốt ...
String object to array php
Wonder, I get from some API the following string:parseresponse({eurusd:{ id: eurusd, category: Forex, price: 1.3161, name: EUR/USD, buy: 1.3162, sell: 1.3159, change: 0.00, ...
Hướng dẫn dùng numpy.sin python
Hàm sin() trong Python trả về sin của x.Cú phápCú pháp của sin() trong Python:Ghi chú: Hàm này không có thể truy cập trực tiếp, vì thế chúng ta cần import math module ...
Hướng dẫn dùng prinft trong PHP
Nội dung chínhNội dung chínhprintf trong c là gìCách sử dụng căn bản của printf trong CLược bỏ chuỗi định dạng format khi dùng hàm printf trong Cxuất không xuống ...
Hướng dẫn dùng pandas joins python
Pandas có đầy đủ tính năng, hiệu suất cao trong hoạt động in-memory join rất giống với cơ sở dữ liệu quan hệ như SQL. Các phương pháp này thực hiện tốt ...
Hướng dẫn get hostname php
(PHP 5 >= 5.3.0, PHP 7, PHP 8)gethostname — Gets the host nameDescriptiongethostname(): string|falseParametersThis function has no parameters.Return Values Returns a string with the hostname on ...
Nhận thẻ cào viettel miễn phí 2023
Nhằm tri ân quý độc giả đã ủng hộ blog kiếm thẻ cào trong thời gian qua, bài viết này mình sẽ tổ chức chương trình tặng card điện thoại giúp các bạn có ...
Hướng dẫn php exception vs throwable
Vấn đề về các lỗi trong PHPHàm error_reporting() trong PHPHàm trigger_error() trong PHPHàm set_error_handler() trong PHPNgoại lệ - Exception trong PHPthrow Exception - phát sinh ...
Hướng dẫn split text file python
I am working on text files like this:Chapter 01Lorem ipsumdolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididuntChapter 02consectetur adipiscingsed do eiusmod temporChapter ...
Ép kiểu number trong javascript
Ép kiểu ngầm định trong JavaScriptÉp kiểu tường minh trong JavaScript1. Ép kiểu tường minh thành number2. Ép kiểu tường minh thành chuỗi3. Ép kiểu tường minh ...
How to access private members of a class in php
I have derived a class from Exception, basically like so:class MyException extends Exception { private $_type; public function type() { return $this->_type; //line 74 } ...
Hướng dẫn build python project
Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người. Là ...
Does python allow pass by value?
Is Python pass-by-reference or pass-by-value?09 Feb 2014“Suppose I say to Fat, or Kevin says to Fat, “You did not experience God. You merely experienced something with the qualities and aspects ...
Nhạc trung thu 2023 mp3
Năm học 2022 - 2023 đã đến gần rồi. Cùng lắng nghe những bài hát hay nhất về ngày khai giảng để chuẩn bị cho tiết mục văn nghệ chào đón năm học mới ...
Hướng dẫn dùng continue trong PHP
Hướng dẫn cách sử dụng lệnh continue trong PHP. Bạn sẽ học được cách dùng lệnh continue để bỏ qua lượt lặp hiện tại của vòng lặp trong PHP sau bài học ...
Greater heights python assignment expert
Answer to Question #243366 in Python for ShoWrite a program that asks the user for their name and their height in inches (Enter your name: , Enter your height in inches: ). The program should ...