php的学习笔记之面向对象(四)继承

      我们人类都是不断地继承祖先留下的东西并在此基础上不断进化才能发展到现在如此悻悻向荣的社会。
      编程也一样,由于有了继承,我们才能节省了大量编程的时间和代价。
      比如程序猿和修车师傅,同样是人,同样要吃喝睡,同样有名字,身高等属性但是他们职业上又有根本的区别,程序猿会编程,而修车师傅会修车。由于他们技能上有所不同,我们必须要生成两个类,但是每次都要把他们相同的属性和技能都写进不同的类中,这样编写代码会让写的人和看的人感到厌烦。这时候我们就要用到继承了。
     于是乎编写了一下代码:

class Human{
    public $name;
    public $height;
    public function eat(){
        echo $this->name." is eating <br>";
    }
}

class  Programmer extends Human{
    public $skill;
    public function __construct($name,$height,$skill){
        $this->name = $name;
        $this->height = $height;
        $this->skill = $skill;
    }
    public function writecode(){
        echo $this->name." is using ".$this->skill." to write codes <br>";
    }
}

class Mechanic extends Human{
    public $car;
    public function __construct($name,$height,$car){
        $this->name = $name;
        $this->height = $height;
        $this->car = $car;
    }
    public function repaire(){
        echo $this->name." is repairing ".$this->car." <br>";
    } 
}

$kitt = new Programmer("kitt","1.78m","php");
$k = new Mechanic("k","1.75m","BMW");
$kitt->writecode();
$kitt->eat();
$k->repaire();
$k->eat();

输出结果如下:
kitt is using php to write codes
kitt is eating
k is repairing BMW
k is eating

用了继承之后,我们就不用在子类中写name height属性和eat()方法了。
下面总结一下继承的好处:
1、父类里面定义的类成员(包括属性和方法)可以不用在子类中重复定义,节约了编程的时 。比如:人的吃这个方法如果在父类中定义了,那么程序员和修车师傅这两个子类就不需要实现吃这个方法了,就好像天生就有这个功能一样。
2、同一个父类的子类拥有父类定义的类成员,因此外部代码调用他们的时候可以一视同仁。
3、子类可以修改和调整父类定义员。
         类成员我们称为重写(overwrite)。
         一旦子类修改了,就按找子类修改之后的功能执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kitt15

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值