php基础-6

类的继承和方法重写

  •  1 <?php
     2 
     3 class people{
     4     public function __construct($name, $age, $sex)
     5     {
     6         $this->age = $age;
     7         $this->name = $name;
     8         $this->sex = $sex;
     9     }
    10 
    11     public function getInfo(){
    12         $i = "这是一个$this->sex"."人,他的姓名人$this->name,他的年龄是$this->sex";
    13         return $i;
    14     }
    15 }
    16 
    17 class Male extends people{
    18     public function __construct($name, $age)
    19     {
    20         parent::__construct($name, $age, '男');
    21     }
    22 }
    23 
    24 $i = new Male("Bob", 18);
    25 echo $i->getInfo();

    先创建一个父类people,然后创建一个子类Male使用关键字extends来继承people类,在Male中常见舒适化方法__construct,再在该方法中对父类的进行初始化。

          将Male的初始化方法中的参数传给people中的初始化方法的,因为是男性(male),所以性别默认是男,所以Male的初始化只用有age,name这两个参数就可以了。完成父类的初始化之后,在对该子类进行实例化,实例化的对象就拥有父类和子类的所有方法了。

  • 类方法的重写
     1 <?php
     2 
     3 class people{
     4     public function __construct($name, $age, $sex)
     5     {
     6         $this->age = $age;
     7         $this->name = $name;
     8         $this->sex = $sex;
     9     }
    10 
    11     public function getInfo(){
    12         $i = "这是一个$this->sex"."人,他的姓名人$this->name,他的年龄是$this->sex";
    13         return $i;
    14     }
    15 }
    16 
    17 class Male extends people{
    18     public function __construct($name, $age)
    19     {
    20         parent::__construct($name, $age, '男');
    21     }
    22     public function getInfo(){
    23 //        parent::getInfo();
    24         $i = "这是一个$this->sex"."人";
    25         return $i;
    26     }
    27 }
    28 
    29 $i = new Male("Bob", 18);
    30 echo $i->getInfo();

    我们运行这段程序,可以看到,当父类和子类拥有相同的方法的时候,php会执行子类里面的方法。这里是我们将父类的方法重写了,如果想在子类里运行父类的方法,直接用parent::父类里面的方法。

猜你喜欢

转载自www.cnblogs.com/ivy-blogs/p/10583224.html
今日推荐