


Examples to explain PHP object-oriented polymorphism, examples to explain object-oriented_PHP tutorial
Explain object-oriented polymorphism in PHP with examples, explain object-oriented polymorphism with examples
What is polymorphism?
Polymorphism is the third feature of object-oriented languages after database abstraction and inheritance. Polymorphism refers to multiple forms and has the ability to express multiple forms. In object-oriented representations are handled differently depending on the type of object. Polymorphism allows each object to respond to a common message in its own way. Polymorphism enhances software flexibility and reusability.
If we create a doing() method, if it is a student, it will print for class, if it is a company employee, it will print for work.
Common practice
Use if judgment
/**
* PHP polymorphism
* Qiongtai Blog
*/
// Define student class
class student{
Public function cla(){
echo "Student workers are in class!
";
}
}
// Define staff class
class office{ public function Wor(){
echo "The staff is at work!
";
}
}
// Method to determine object type
function doing($obj){
If($obj instanceof student){
$obj->cla();
}elseif($obj instanceof office){
$obj->wor();
}else{
echo "No such object!";
}
}
doing(new student()); // The student is in class
doing(new office()); // The employee is working
Students are in class
The staff is working
Polymorphism practices
* PHP polymorphism
* Qiongtai Blog
*/
//Define a public class
class pub{
protected function working(){
echo "This method needs to be overloaded in subclasses!";
}
}
// Define the student class and inherit the public class pub
class student extends pub{
Public function working(){
echo "Student workers are in class!
";
}
}
// Define the staff class and inherit the public class pub
class office extends pub{
public function working(){
echo "The staff is at work!
";
}
}
// Method to determine object type
function doing($obj){
If($obj instanceof pub){
$obj->working();
}else{
echo "No such object!";
}
}
doing(new student()); // The student is in class
doing(new office()); // The employee is working
Other ways From the perspective of the implementation of polymorphism, it is nothing more than standardizing that each class must override a method of the parent class to achieve a unified effect. When we define a class, it is also feasible to add unified methods ourselves. Therefore, the above example can also be implemented like this:
/**
* PHP polymorphism
* Qiongtai Blog
*/
// Define student class
class student{
// Define a unified method pub
Public function pub(){
echo "Student workers are in class!
";
}
}
// Define staff class
class office{
// Define a unified method pub
public function pub(){
echo "The staff is at work!
";
}
}
// Method to determine object type
function doing($obj){
If($obj){
// Call the unified method of the class
$obj->pub();
}else{
echo 'No such object';
}
}
doing(new student()); // The student is in class
doing(new office()); // The employee is working
Of course, the above examples do not mean that polymorphism can be achieved in this way. After all, polymorphism can effectively achieve flexible reuse in complex programming.
Polymorphism can also be understood as a programming method, and the ultimate goal of programming is nothing more than: flexibility, polymorphism, reuse, and efficiency.
The concept of object-oriented programming, object-oriented programming, has been pursued by programmers. The previous programming was process-oriented and could not be used for large-scale projects. Object-oriented programming can be said to be a revolution. It is more suitable for people. Thoughts, human thinking, rather than programming according to machine language thoughts! In C#, everything is an object! In fact, objects are not difficult to understand. For example: you are looking for a wife, what does your wife look like, how old is she, and what is her last name? , what job you do, how many boyfriends you have, etc. These are all characteristics of the object (wife).
When it comes to type conversion, there should be no need to say more about this!
As for the father The prerequisite for forced conversion of a class object into a subclass object is that the parent class object has the value of the subclass object, that is, the subclass object has been assigned to the parent class variable!
///
If it is a parent class If the object is converted to a subclass object, is the method (or attribute) of the parent class or the subclass called?
This is hard to explain. It will take a while to make it clear! There are many issues involved. Should subclasses hide or override the methods of the parent class? Besides, the parent class is abstract. Class, interface, etc. This requires detailed analysis of specific issues!
It is best to post your code to help you analyze!
The above is my understanding. If there is any mistake, please forgive me. !
Simply put, polymorphism is the characteristic of having the ability to express multiple forms. In OO, it means that the language has the ability to process objects in different ways according to their types, especially in the form of overloaded methods and inherited classes. Polymorphism is considered an essential feature of object-oriented languages.
Polymorphism has many classifications. By understanding these classifications, you can understand it more fully. I will not list it here. Please refer to the wiki encyclopedia and javaworld.
Polymorphism and pan Type (generic)
Polymorphism is actually generics.
The so-called generic means that we do not code specifically for specific types, but use universal coding for different types, whether it is data results or algorithms.
Traditional generics refer to generalizing parameters in a way similar to Template function. Typical applications are C++ STL, such as List, Vector and algorithm.
And OO can already achieve true generics through interfaces and abstract classes. In my opinion, this is the most wonderful thing about OO, which is the power of polymorphism. As for Generic in the traditional sense, I always feel that its role is no longer what it used to be.
Polymorphism and inheritance (Inheritance)
Strictly speaking, polymorphism, inheritance and overloading are not isolated. There is a close connection between them. Polymorphism is based on this Based on the two (in fact, inheritance has the feature of overloading).
Traditional polymorphism is actually implemented by virtual function and virtual table (Virtual Table was most commonly used in early C to simulate OO features, as was the implementation of C++, and later technologies have not been studied. , it is unknown whether VT is used), naturally it is inseparable from inheritance. In other words, polymorphism actually covers inheritance.
It is precisely because of the close connection between inheritance and polymorphism that it is easy for us to pretend to be others, so how to distinguish them?
Take a commonly used example:
Abstract Class Sharp implement IHaveSide {
public bool isSharp(){
return true;
}
public abstract int getSides ();
}
Class Triangle extends Sharp {
public override int getSides() {
return 3;
}
}
Class Rectangle extends Sharp {
pubilc override int getSides() {
return 4;
}
}
Then this kind of relationship is called inheritance, and the following usage method is also brought about by inheritance. Here comes:
Triangel tri = new Triangle();
println("Triangle is a type of sharp? " + tri.isSharp());
And this method is polymorphic :
Sharp sharp = new Rectangle();
println("My sharp has " + sharp.getSides() + " sides.");
What is the difference between the two? Obviously, inheritance is a method for subclasses to use parent classes, while polymorphism is a method for parent classes to use subclasses.
The technical difference is the binding period, late binding must be polymorphic. ...The rest of the text>>

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.
