PHP面向对象继承的概念

  • 1,062

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

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

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

进一步增添或修改.

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类

现实中,继承的例子更多.
你同事高帅富,某天开了个宝马.
他没有宝马,但是他爹有宝马.
*/
?>

 

weinxin
我的微信
这是我的微信扫一扫
开拓者博主
  • 本文由 发表于 2016年6月28日13:34:28
  • 转载请务必保留本文链接:https://www.150643.com/101.html
匿名

发表评论

匿名网友 填写信息