类的继承和方法重写
-
<?php class people{
public function __construct($name, $age, $sex)
{
$this->age = $age;
$this->name = $name;
$this->sex = $sex;
} public function getInfo(){
$i = "这是一个$this->sex"."人,他的姓名人$this->name,他的年龄是$this->sex";
return $i;
}
} class Male extends people{
public function __construct($name, $age)
{
parent::__construct($name, $age, '男');
}
} $i = new Male("Bob", 18);
echo $i->getInfo();先创建一个父类people,然后创建一个子类Male使用关键字extends来继承people类,在Male中常见舒适化方法__construct,再在该方法中对父类的进行初始化。
将Male的初始化方法中的参数传给people中的初始化方法的,因为是男性(male),所以性别默认是男,所以Male的初始化只用有age,name这两个参数就可以了。完成父类的初始化之后,在对该子类进行实例化,实例化的对象就拥有父类和子类的所有方法了。
- 类方法的重写
<?php class people{
public function __construct($name, $age, $sex)
{
$this->age = $age;
$this->name = $name;
$this->sex = $sex;
} public function getInfo(){
$i = "这是一个$this->sex"."人,他的姓名人$this->name,他的年龄是$this->sex";
return $i;
}
} class Male extends people{
public function __construct($name, $age)
{
parent::__construct($name, $age, '男');
}
public function getInfo(){
// parent::getInfo();
$i = "这是一个$this->sex"."人";
return $i;
}
} $i = new Male("Bob", 18);
echo $i->getInfo();我们运行这段程序,可以看到,当父类和子类拥有相同的方法的时候,php会执行子类里面的方法。这里是我们将父类的方法重写了,如果想在子类里运行父类的方法,直接用parent::父类里面的方法。