封装
定义: 将内容装到某个容器中,并密封保存.在面向对象的思想中,封装指的是将数据和对数据的操作捆绑到一起,形成对外界的隐蔽,同时对外提供可调用的接口.
- 数据 : 要操作的数据,即类属性(普通属性和静态属性)和类常量
- 操作 : 数据的加工过程,在面向对象思想中就是方法(函数),内部定义业务逻辑对数据进行加工处理
- 捆绑 : 类结构使用{}将属性常量和方法存放到一起,成为一个整体
对外提供的可操作的接口 : 供外部访问的类成员(通常是方法)
继承
定义 : 子类合法拥有父类的某些权限
继承必须满足继承关系,存在合理的包含关系
- 继承的本质是子类通过继承可以直接使用父类已经存在的数据和方法
不同的编程语言继承机制不一样,PHP中使用extends表示继承
多态
定义 : 相同的操作或函数,过程中可作用于多种类型的对象上并获得不同的结果
需发生类的继承,同时出现方法重写,即子类拥有父类同名的方法
- 结果 ; 父类对象表现子类对象的特点
<?php
// 父类T
class T{}
// 两个子类A和B 共同继承于T 并都定义play方法
class A extends T{
public function play()
{
return "我是A中的play";
}
}
class B extends T{
public function play()
{
return "我是B中的play";
}
}
// 行参设置为对象类型 必须为T或者T的子类对象
function test(T $obj){
return $obj->play();
}
// 相同函数传入不同的参数 得到的结果不同
// 就叫多态
$a=new A();
echo test($a);
echo "<br>";
$b=new B();
echo test($b);