PHP中面向对象之继承-php教程

资源魔 37 0

本文指标:

一、理解承继的界说

二、把握承继的益处

(一)、界说

1.png

咱们细心看下面一张图,而后做一件事件,找出他们的独特点

独特点:

一、都领有局部相反的属性以及办法

二、他们都是人

依照失常类的界说走,咱们要完成以上2个类,咱们患上辨别界说NBA球员这个类的一切属性以及办法,而后界说女主播类的时分,还患上写一遍反复的姓名,身高,体重等属性以及用饭的办法,假如又有一个类比方叫先生,那象征着这些独特的属性以及独特的办法又患上反复写一遍,以此类推,代码会有不少中央相似,这样添加的代码的冗余性,以是为理解决这类冗余性,为了让代码更简约,可重用性高,咱们能够把这些独特的属性以及办法都写到一块去,而后让每一个类都去挪用这个公共的属性以及办法,这样保护起来是否是就愈加不便了,并且代码也愈加简约了,那末这类做法咱们就叫做承继

详细怎样做的呢,以下图

2.png

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

3.png

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

总结:甚么是承继,承继是一种办法,用来进步代码的可重用性以及缩小代码的冗余性,就像事实生存中的遗传同样,子女城市承继怙恃的局部基因,以是你终身上去你就是有人类的独特属性以及行为

(二)、承继的益处

一、进步代码的重用性,节约了编程的工夫以及价值

父类中界说的属性以及办法就没有需求子类中反复界说,子类只需承继了父类,就领有了父类中一切的属性以及办法

二、关于同一个父类下的一切子类,挪用他们的时分能够厚此薄彼

比方不论是NBA球员仍是女主播,由于他们都是人,以是咱们挪用他们的时分能够间接挪用父类的办法,比方用饭,而不必管这个类究竟是NBA球员仍是女主播

三、子类能够修正调整父类界说的类成员

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("苹果");
 //证实第二个益处,只需是集体就能够挪用它的eat办法
 $linda = new Anchors("琳达","LD");
 echo $linda->eat("苹果");
 //测试第三个益处能否实在
 //思绪1.为女主播以及NBA球员2个类辨别重写eat办法
//    2.再次执行2个工具的eat办法
//  会发现一旦子类重写了父类的办法,那末就会挪用子类本人的办法了,这里就各人本人写下,由于下面我曾经挪用了eat办法,一旦重写了,下面的后果会变

?>

经过上述代码的演示,咱们总结一下:

一、extends 就是承继,经过这个要害字能够完成子类承继父类,同享父类的一切属性以及办法

二、承继代码的其余特性:

● 正在子类结构函数中也能够间接经过$this->来拜访

● 正在php中extends 前面只能承继一个类,不克不及用,来完成承继多个类,不然会报错

总结:

本文其实指标只有2个,晓得承继的界说和洽处,最初咱们经过代码置信对承继的益处有了更深的领会以及了解

以上就是PHP中面向工具之承继的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 面向对象

抱歉,评论功能暂时关闭!