PHP面向对象继承的概念

  ====笔记部分====

继承: 是指以一个类为父类,另一个类可以做为其子类,

子类在继承了父类的属性/方法的基础上,

进一步增添或修改.

PHP面向对象继承的概念

<?php
 
 
 
 
 
 
/****
代码部分
****/
 
// 定义3个类, 人类, 学生类,律师类
 
 
class Human {
    private $height = 160;
 
    public function cry() {
        echo '5555<br />';
    }
}
 
 
class Stu {
    private $height = 170;
    public $snun = '00134';
 
    public function cry() {
        echo '59啊59....<br />';
    }
 
    public function study() {
        echo 'good good study, day day up<br />';
    }
}
 
 
/*
老友记
long time no see
 
you don't bird me,I don't bird you!
*/
 
 
class Lawer {
    private $height = '180';
    public $area = '经济案件';
 
    public function cry() {
        echo '5555<br />';
    }
 
    public function bianhu() {
        echo '我的当事人是无罪的<br />';
    }
}
 
 
$zhoukou = new Human();
$zhoukou->cry();
 
 
$xiaoming = new Stu();
$xiaoming->cry();
$xiaoming->study();
 
$lizhuang = new Lawer();
$lizhuang->cry();
$lizhuang->bianhu();
 
?>

/****

思考:

1: 学生和律师 归根结底还是人!

自然,人的属性和方法,自然就有

2:学生和律师,虽然是人,但比最原始的人,

又多了一些属性和方法.

而我们目前写的3个类,

完成了第2点: 即有原始人的属性,又有学生/律师的独特属性

但是,没有很好的利用上第1点:

即:既然是人,那默认就应该有人的属性,何必再重新声明一遍???

这里的代码,就已经冗余!

如何达到 学生/律师 默认就有人的属性,达到代码的重用和简洁?

答: 继承

****/


  ====笔记部分====

继承

语法: extends

子类 extends 父类 {

}

注意点: 子类 只能继承自 一个父类

不能这样写:

subClass extends Dog,Cat,Pig {

}

<?php
 
 
/****
代码部分
****/
 
 
class Human {
    private $height = 160;
 
    public function cry() {
        echo '5555<br />';
    }
}
 
 
 
// 再声明一个学生类,学生本质上还是人
// 只不过是人类中,稍微特殊一点的一个群体.
// 即:人类的基础上,衍生出学生类.
// 可以让学生类 继承自 人类
class Stu extends Human{
}
 
$zhoukou = new Human();
$zhoukou->cry();
 
/**/
$lily = new Stu();
$lily->cry();
$lily->laugh();
 
 
/*
思考:
在学生类中
cry 与 laugh方法 都没定义
为什么cry方法调用成功
laugh方法调用失败!
 
答:因为Stu类 继承自 Human类
 
现实中,继承的例子更多.
你同事高帅富,某天开了个宝马.
他没有宝马,但是他爹有宝马.
*/
?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值