1、封装
隐藏实现的细节,代码模块化。
一是方法封装,即将使用者关注的功能暴露,而隐藏其他使用者用不到的功能;二是属性封装,即对用户的数据进行控制,防止不合法的数据传输设置。
2、继承
继承是实现代码重用。
php中用extends实现继承。在子类中用extends继承父类,子类可以继承来自父类的非私有属性和方法。
- 子类只能继承父类的非私有属性。
- 子类使用父类中的方法时,直接用$this->父类方法调用。
- 子类不能同时继承自好几个父类,但是可以多层继承。
- >>> class Person{}
- class Chengnian extends Person{}
- class Student extends Chengnian{}
Student类就同时具有了Chengnian类和Person类的属性和方法
3、多态
实现接口重用。”一个接口,多种方法“。
条件:1、子类继承父类。
2、子类重写父类的方法。
3、父类引用指向子类对象。
代码demo:
abstract class Person{ abstract function say(); } class Chinese extends Person{ // 条件一:子类继承父类 function say(){ // 条件二:子类重写父类方法 echo "我说中文!<br>"; } } class English extends Person{ //条件一:子类继承父类 function say(){ // 条件二:子类重写父类方法 echo "I speak English!<br>"; } } // Person $c = new Chinese(); // 父类引用指向子类对象,PHP中此形式行不通 // Person $e = new English(); function func(Person $p){ //PHP中的类型约束只存在与函数的形参 $p -> say(); } func(new Chinese()); // 条件三:父类引用指向子类对象 func(new English()); // 条件三:父类引用指向子类对象