面向对象的三大特性
1.封装
目的:是为了使类更加安全
步骤:
- 将成员变量变为私有
- 做一个成员方法直接访问
- 在该方法里面加限制条件
方法一:class ren
{
if($n>=18&&$n<=50)
{
$this->age=$n;
}
}
function getAge()
{
return $this->age;
}
$r=new ren();
$r->setAge (20);
echo $r->getAge();
方法二: .net中会有成员属性,但php中没有,php采用魔术方法来解决第一种方法中存在的问题。
class ren
{
private $name;
private $age;
赋值 function __set($n(变量名称),$v(变量值))
{
if($n=="age")
{
if($n>=18&&$n<=50)
{
$this->$n=$v;
}
else{$this->$n=$v;}
}
取值 function __get($n)
{
return $this->$n;
}
}
}
$r=new ren();
$r->__set("age",12)
2.继承
子类可以继承父类的一切
特点:单继承(一个子类只能有一个父类,一个父类可以有多个子类)
class ren class china extends ren
{ {
private $name; function run()
function run() 既想调用子类又想调用父类时 {
parent::run() echo"中国人跑步"
}
{ }
echo "跑步";
}
}
3.多态
当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,该引用在调方法的时候表现出不同。