PHP面向对象的特点

1)继承

关键字:extends   (子类 extends 父类)

目的:减少代码的重复量(继承可大大减少我们代码中的重复

继承特征:

默认父类Animal中的属性和行为都被子类继承下来,可以不用再次去声明

PHP是一个单继承,一个类只可以继承一个父类,但一个父类却可以被多个子类所继承。

子类不能继承父类的私有属性和私有方法。

PHP5中类的方法可以被继承,类的构造函数也可被继承

继承只能有且也只有一个父类

Parent:该关键字,意思为父母,在这里指代的是当前类的父类对象

2)封装

①定义:封装就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。

②优点:信息隐蔽,封装即隐藏

③封装的原则:在软件上,要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的“交叉感染”,使软件错误能够局部化,大大减少查错和拍错的难度。

④目的:

隐藏一个类的实现细节

防止对封装数据的未经授权的访问,使用者只能通过实现定制好的方法来访问数据,可以方便的加入控制逻辑,限制对属性的不合理操作。

有利于保证数据的完整性

有利于对数据的保护

(3)多态

①抽象:就是无法确切的说明,但又有一定的概念或者名称

抽象类:使用抽象关键字修饰的类,就叫做抽象类。

关键字:abstract

特点:

抽象类不能被实例化

抽象类不一定需要有抽象方法,但是包含抽象方法的类必须是抽象类

抽象方法:

abstract class Animal

{
     public abstract function shout();
}

使用abstract修饰的函数方法称为抽象方法

抽象方法只有函数的声明部分,不包含实现部分,且要用分号代表结束

继承了带有抽象方法的类必须实现抽象方法的定义

②接口

接口是抽象方法和静态常量定义的集合

接口是一种特殊的抽象类,这种抽象类只包含抽象方法和静态常量,没有其他类型

注:在接口中的抽象方法只能是public,默认也是public。不能是protectedprivate

接口通常都是一组功能的集合

interface Ifly

{
     public function fly();
}

在接口中的函数都是公共的抽象函数方法,这些函数不能添加abstract关键字,同时也可以省略public

实现接口: implements

实现了某个接口,那么必须实现接口中的所有的抽象方法

一个类可以实现多个接口

原文地址:https://www.cnblogs.com/lxy1023-/p/7190641.html