百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> PHP中面向对象之继承
分享文章到:

PHP中面向对象之继承

发布时间:09/01 来源:未知 浏览: 关键词:

本文目标:

1、理解继承的定义

2、把握继承的好处

(一)、定义

1.png

我们细心看上面一张图,然后做一件事情,寻出他们的共同点

共同点:

1、都具有部分雷同的属性和办法

2、他们都是人

依照正常类的定义走,我们要实现以上2个类,我们得离别定义NBA球员这个类的所有属性和办法,然后定义女主播类的时候,还得写一遍反复的姓名,身高,体重等属性和吃饭的办法,假如又有一个类比方叫学生,那意味着这些共同的属性和共同的办法又得反复写一遍,以此类推,代码会有许多地方相似,这样增添的代码的冗余性,所认为理解决这种冗余性,为了让代码更简约,可重用性高,我们可以把这些共同的属性和办法都写到一块去,然后让每个类都去调取这个公共的属性和办法,这样保护起来是不是就愈加利便了,并且代码也愈加简约了,那么这种做法我们就叫做继承

详细如何做的呢,如下图

2.png

我们先创立了一个“人“的类,让这个人都具有2个类都有的属性和办法,再让NBA球员和女主播都继承 “人” 这个类

3.png

概念:被继承的类叫父类,比方人,继承的类叫子类

总结:什么是继承,继承是一种办法,用来提高代码的可重用性和减少代码的冗余性,就像实际生活中的遗传一样,子女都会继承父母的部分基因,所以你一生下来你就是有人类的共同属性和行动

(二)、继承的好处

1、提高代码的重用性,节省了编程的时间和代价

父类中定义的属性和办法就不需要子类中反复定义,子类只要继承了父类,就具有了父类中所有的属性和办法

2、关于统一个父类下的所有子类,调取他们的时候可以混为一谈

比方不管是NBA球员还是女主播,由于他们都是人,所以我们调取他们的时候可以直接调取父类的办法,比方吃饭,而不消管这个类到底是NBA球员还是女主播

3、子类可以修改调整父类定义的类成员

a、我们称为重写(Overwrite)

b、一旦子类修改好了,就依照子类定义的办法施行

这相当于变异

学习任何东西我们既要知道其理论,还要有相关的理论实践,其实所有的理论都是实践得出来的,所以有的时候我一再强调,理论虽然很抽象,但是大家有了必然的实践经历后也要停止总结,总结一些三言两语,通俗易懂的“理论”,这个习惯培养好了今后,我信赖许多知识大家能够理解的愈加透彻,同时更容易抓住事情的本质,这样剖析问题的能力也会得到晋升。

好了,既然要理论和实践相结合,那么接下来,我们通过代码停止实操演示,看看在代码中详细是如何实现继承的

(三)、详细代码

<?php
/***
 * 案例目标
 * 1.把握继承的定义
   2.把握继承的好处
 */
 //定义一个“人”类
class Human{
    public $name = "";//姓名
    public $height = "";//身高
    public $weight = "";//体重

    public function eat($food){
        echo $this->name."在吃".$food."<br/>";
    }
}
//女主播
class Anchors extends Human{
    public $name = "";
    public $stageName = "";
    public function __construct( $name,$stageName ){
        $this->name = $name;
        $this->stageName = $stageName;
    }
    public function singing(){
        echo "我是女主播,我会唱歌<br/>";
    }
    //重写办法eat
    public function  eat($food){
        echo "我是女主播,我是边唱歌边吃{$food}<br/>";
    }
}
//Nba球员类
 class NbaPlayer extends Human{
   //由于父类已经有了,所以就不需要再写了,通过extends来实现
    // public $name  = "";//姓名
    // public $height = "";//身高
    // public $weight = "";//体重

    public $team = "";//团队
    public $playerName = "";//球员号码

    public function __construct( $name,$height,$weight,$team,$playerName ){
        $this->name = $name;
        $this->height=$height;
        $this->weight = $weight;
        $this->team = $team;
        $this->playName = $playerName;
        echo "结构函数施行了,当前对象是{$this->name}<br/>";
    }
    
   
   //跑步
    public function run(){
        echo "跑步中<br/>";
    }
    //跳跃
    public function jump(){
        echo "跳跃<br/>";
    }
    //运球
    public function dribble(){
        echo "运球<br/>";
    } 
    //传球
    public function pass(){
        echo "传球<br/>";
    }
    //投篮
    public function shoot(){
        echo "投篮<br/>";
    }
    //扣篮
    public function dunk(){
        echo "扣篮<br/>";
    }
    //重写办法eat ,只要名称和父类一样就是代表重写了不必然参数也要保持一样
    public function eat($food){
        echo "我是Nba球员,我是站着吃饭,边吃{$food}边看球赛<br/>";
    }
 }
 //测试,NBA球员,没有直接定义name,身高,体重,此刻输出一下看结果有没有
 //创立乔丹对象
 $jordon = new NbaPlayer("乔丹","1.98米","98公斤","公牛","23");
 //输出乔丹对象
 echo "名称= ".$jordon->name."<br/>";

 //测试,NBA球员,没有直接定义eat办法,此刻输出一下看结果有没有
 echo $jordon->eat("iphone");
 //证明第二个好处,只如果个人就可以调取它的eat办法
 $linda = new Anchors("琳达","LD");
 echo $linda->eat("iphone");
 //测试第三个好处可否真实
 //思绪1.为女主播和NBA球员2个类离别重写eat办法
//    2.再次施行2个对象的eat办法
//  会发明一旦子类重写了父类的办法,那么就会调取子类本人的办法了,这里就大家本人写下,由于上面我已经调取了eat办法,一旦重写了,上面的结果会变

?>

通过上述代码的演示,我们总结一下:

1、extends 就是继承,通过这个关键字可以实现子类继承父类,同享父类的所有属性和办法

2、继承代码的其他特点:

● 在子类结构函数中也可以直接通过$this->来拜访

● 在php中extends 后面只能继承一个类,不克不及用,来实现继承多个类,不然会报错

总结:

本文其实目标只要2个,知道继承的定义和好处,最后我们通过代码信赖对继承的好处有了更深的体味和懂得

以上就是PHP中面向对象之继承的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板