Home  >  Article  >  Backend Development  >  Introduction to PHP object-oriented inheritance, polymorphism, and encapsulation

Introduction to PHP object-oriented inheritance, polymorphism, and encapsulation

小云云
小云云Original
2018-03-02 09:49:152235browse

1. Interface
In the PHP programming language, an interface is an abstract type and a collection of abstract methods. Interfaces are usually declared as interface. A class implements the interface's methods (abstract methods) by implementing the interface.

Interface definition:

interface InterAnimal{
        public function speak();
        public function name($name);
    }//接口实现
 class cat implements InterAnimal{
        public function speak(){
            echo "speak";
        }        public function name($name){
            echo "My name is ".$name;
        }
    }

Special attention:
* All classes are abstract methods (no need to declare abstract)
* The interface abstract method is public
* Members (fields) must be constants

2. Inheritance
A class that inherits from another class is called a subclass of that class. This relationship is often represented by the metaphor of parent and child. The subclass will
inherit the characteristics of the parent class. These properties consist of properties and methods. Subclasses can add new functions beyond those of the parent class, so subclasses are also
called "extensions" of the parent class.
In PHP, class inheritance is implemented through the extends keyword. Classes that inherit from other classes become subclasses or derived classes, and classes that subclasses inherit from become parent classes or base classes.

class Computer {
    private $_name = '联想';    public function __get($_key) {
        return $this->$_key;
    }    public function run() {
        echo '父类run方法';
    }
}class NoteBookComputer extends Computer {}$notebookcomputer = new NoteBookComputer ();$notebookcomputer->run ();  //继承父类中的run()方法echo $notebookcomputer->_name;  //通过魔法函数__get()获得私有字段
Special Note:

Sometimes the fields and methods of the parent class are not needed, so the fields and methods of the parent class can be modified by rewriting the subclass.

class Computer {
    public $_name = '联想';    protected function run() {
        echo '我是父类';
    }
}//重写其字段、方法class NoteBookComputer extends Computer {
    public $_name = 'IBM';    public function run() {
        echo '我是子类';
    }
}
Call the method of the parent class by overriding it

Sometimes, we need to be able to call the method content of the parent class through the overridden method. In this case, we must use
Syntax: Parent class name::method(), parent::method() can be called.
The final keyword can prevent a class from being inherited. Sometimes you just want to be an independent class and don't want to be inherited and used by other classes.

3. Abstract classes and methods

Characteristics of abstract classes:
* Abstract classes cannot produce instance objects and can only be inherited;
* Abstract methods must be in abstract classes. There may not necessarily be abstract methods in an abstract class;
* When inheriting an abstract class, the subclass must override all abstract methods in the parent class;
* A method defined as abstract only declares its calling method (parameters), Not realized.

abstract class Computer {
    abstract function run();}final class NotebookComputer extends Computer {
    public function run() {
        echo '抽象类的实现';
    }
}
3. Polymorphism

Polymorphism means that OOP can redefine or change the nature or behavior of a class according to the context in which the class is used, or that multiple different implementations of the interface are polymorphic. .

interface Computer {
    public function version();
    public function work();}class NotebookComputer implements Computer {
    public function version() {
        echo '联想<br>';
    }    public function work() {
        echo '笔记本正在随时携带运行!';
    }
}class desktopComputer implements Computer {
    public function version() {
        echo 'IBM';
    }    public function work() {
        echo '台式电脑正在工作站运行!';
    }
}class Person {
    public function run($type) {
        $type->version ();        $type->work ();
    }
}$person = new Person ();$desktopcomputer = new desktopComputer ();$notebookcomputer = new NoteBookComputer ();$person->run ( $notebookcomputer );
Related recommendations:


PHP object-oriented identification object

Development of php object-oriented programming Ideas and example analysis

PHP object-oriented practical basic knowledge

The above is the detailed content of Introduction to PHP object-oriented inheritance, polymorphism, and encapsulation. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn