面向对象的三大特性是封装,继承和多态。
一.封装
封装的目的是为了让类变得更加安全,因为外界不能直接访问和修改类里面的变量、属性。
封装的做法
1.将类中的变量私有化(即变量的访问修饰符为private)
2.做一个成员方法来简介访问
3.在该方法中加入限制条件
例:
class Ren
{
private $age; // 让成员变量私有
private $name;
function setAge($n) //定义成员方法,用来让外界调用
{
if($n>=18 && $n<=50)
{
$this->age = $n;
}
}
function getAge()
{
return $this->age;
}*/
}
$r = new Ren();
$r->age = 20;
$r->name = "zhangsan";
echo $r->name;
二、继承
继承就是子类继承父类的一切,使用extends关键字,只能单继承(就是子类只能有一个父类,但一个父类可以有多个子类)
例 class Ren //定义一个父类
{
private $name;
function Run() //父类的成员方法
{
echo "跑步";
}
}
class China extends Ren //定义一个子类China,继承于父类Ren ,中间用了关键字extends,并且继承到了父类的一切。
{
//重写 override
function Run() //子类中出现了和父类的同名函数,子类重新定义函数的功能 ,叫做重写(override)
{
parent::Run(); //如果想继续调用父类的重名函数,可以使用parent::的方法来调用。会同时执行父类和子类的方法。
echo "中国人跑步";
}
}
$c = new China();
$c->Run();
三、多态
当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,该引用在调用方法的时候表现出的不同,叫做多态。
php属于弱类型语言,多态的表达不明显,但是在强类型语言中可以运用多态