您的位置:首页 > 编程语言 > PHP开发

PHP面向对象继承的概念

2016-07-02 21:13 627 查看

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

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

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

进一步增添或修改.



<?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类

现实中,继承的例子更多.
你同事高帅富,某天开了个宝马.
他没有宝马,但是他爹有宝马.
*/
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: