面向对象基本特征:

封装
隔离性:
被封装后的对象,其外部对象是无法直接访问对象的内部实现细节,内部实现细节的的改动不会影响到外部对象的访问原则(即:对象内部修改后,在公开暴露指定的访问路径不变的情况下,外部访问它的对象是无需修改的),这是隔离性的体现,同时也是实现高内聚,低耦合的最根本的思想之一;
可复用性:
被封装后的对象可以被外部多个对象访问,而无需为每个外部对象去指定不同的服务对象;减少代码的冗余。
可读性:
合理设置被封装的对象名称,可增强代码的可读性,通过方法名或者类名即可了解其作用。

继承
PHP中主要通过extends关键字来实现继承: class Student extends Person{}
PHP只能单继承,不支持一个类继承多个类。但是一个类可以进行多层继承(即A继承于B,而C又继承于A,C通过A间接继承了B)
子类继承父类非私有的属性和方法,可以通过$this关键字进行访问
覆盖:子类中声明与父类相同名称的属性和方法,则该属性和方法会覆盖父类中的属性和方法,属性被覆盖后,无法访问父类中的属性,方法被覆盖后,可以通过parent::方法名()进行访问

多态
同一方法作用于不同对象时,产生不同的执行结果
多态存在的三个必要条件:继承、重写(子类继承父类后对父类方法进行重新定义)、父类引用指向子类对象
示例如下:


abstract class Person{        // 父类使用abstract关键字修饰
    abstract function say();
} 

class Chinese extends Person{   // 子类重写父类方法
    function say(){
       echo "我是中国人<br>";
    }
} 
class English extends Person{    // 子类重写父类方法
    function say(){
        echo "我是英国人";
    }
}

$zhangsan = new Chinese();
$zhangsan->say();
$z = new English();
$z->say();
Person $p = new Chinese();   // 父类引用指向子类对象

上述代码中,两个子类都是继承自同一父类,但因为都重写了父类的方法,表现出了不同的形态 基本原则:

1、单一职责原则(SRP)

单一职责有两个含义:一个是避免相同的职责分散到不同的类中,另一个是避免一个类承担太多职责

2、开放封闭原则(OCP)

一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的

3、里氏替换原则(LSP)

子类型必须能够替换掉它们的父类型,并出现在父类能够出现的任何地方。

4、依赖倒置原则(DIP)

依赖倒置简单地讲就是将依赖关系倒置为依赖接口,具体概念如下:

- 上层模块不应该依赖于下层模块,它们共同依赖于一个抽象(父类不能依赖子类,它们都要依赖抽象类)。
           
- 抽象不能依赖于具体,具体应该依赖于抽象。

5、接口隔离原则(ISP)

不同的模块要通过抽象接口隔离开,而不是通过具体的类强耦合。
最后修改:2020 年 12 月 10 日 08 : 32 PM
对您有帮助的话,请赏包辣条吧 ^~^