php基础-6

时间:2021-12-16 05:26:59

类的继承和方法重写

  •  <?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::父类里面的方法。