本文指标:
一、理解承继的界说
二、把握承继的益处
(一)、界说
咱们细心看下面一张图,而后做一件事件,找出他们的独特点
独特点:
一、都领有局部相反的属性以及办法
二、他们都是人
依照失常类的界说走,咱们要完成以上2个类,咱们患上辨别界说NBA球员这个类的一切属性以及办法,而后界说女主播类的时分,还患上写一遍反复的姓名,身高,体重等属性以及用饭的办法,假如又有一个类比方叫先生,那象征着这些独特的属性以及独特的办法又患上反复写一遍,以此类推,代码会有不少中央相似,这样添加的代码的冗余性,以是为理解决这类冗余性,为了让代码更简约,可重用性高,咱们能够把这些独特的属性以及办法都写到一块去,而后让每一个类都去挪用这个公共的属性以及办法,这样保护起来是否是就愈加不便了,并且代码也愈加简约了,那末这类做法咱们就叫做承继
详细怎样做的呢,以下图
咱们先创立了一个“人“的类,让这集体都具备2个类都有的属性以及办法,再让NBA球员以及女主播都承继 “人” 这个类
概念:被承继的类叫父类,比方人,承继的类哨子类
总结:甚么是承继,承继是一种办法,用来进步代码的可重用性以及缩小代码的冗余性,就像事实生存中的遗传同样,子女城市承继怙恃的局部基因,以是你终身上去你就是有人类的独特属性以及行为
(二)、承继的益处
一、进步代码的重用性,节约了编程的工夫以及价值
父类中界说的属性以及办法就没有需求子类中反复界说,子类只需承继了父类,就领有了父类中一切的属性以及办法
二、关于同一个父类下的一切子类,挪用他们的时分能够厚此薄彼
比方不论是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开发自学 面向对象
抱歉,评论功能暂时关闭!