Correction status:qualified
Teacher's comments:总结的好
<?php //子类的三类应用场景 //先创建父类 namespace _k; class kk{ public $name; public $v; public function __construct($name,$v) //魔术方法,构造函数,括号内变量值(参数值)由外部传入 { $this->name=$name; $this->v=$v; } public function getInfo() { return '名字:'.$this->name.',速度:'.$this->v.'m/s'; } } //子类.1.代码复用,继承父类中的成员(代码) class k1 extends kk { } $k1= new k1('小红',3); echo $k1->getInfo() ; echo'<hr>'; //exit; //2.功能扩展 class k2 extends k1 { public $t; public function __construct($name,$v,$t) { //引用父类构造中使用的代码 parent::__construct($name,$v); $this->t=$t; } //子类中添加一个新方法,计算路程 public function add() { return ($this->v*$this->t); } } $k2= new k2('小明',5,2); echo $k2->name.'2秒的路程是:'.$k2->add(); echo '<hr>'; //3.方法重写 class k3 extends k2 { //重写add public function add() { return ($this->v*$this->t*0.8); } } $k3=new k3('小蓝',7,2); echo $k3->name.'2秒的路程是:'.$k3->add();
点击 "运行实例" 按钮查看在线实例
访问限制符:
<?php //三种访问限制符,public,protected,private namespace _0930; class k4 { public $name;//名字,公开 public $department;//部门,公开 protected $age;//年龄,受保护 private $position;//职位,私有 public function __construct($name,$department,$age,$position) { $this->name=$name; $this->department=$department; $this->age=$age; $this->position=$position; } public function getAge() { return $this->department==='分部'?$this->age:'无权查看'; } public function getPosition() { return $this->department==='总部'?$this->position:'无权查看'; } } $obj= new k4('小唐','分部',22,'分部大佬'); echo $obj->name; echo '<br>'; echo $obj->department; echo'<br>'; echo $obj->getAge(); echo'<br>'; echo $obj->getPosition(); //在子类中,显示区别 class kkk extends k4 { public function display() { //return $this->name;//公开 //return $this->department;//公开 //return $this->age;//受保护 return $this->position;//私有 } } echo '<hr>'; $kkk = new kkk('小飞','总部',666,'总部头头'); echo $kkk->name; echo '<br>'; echo $kkk->department; echo'<br>'; echo $kkk->getAge(); echo'<br>'; echo $kkk->getPosition(); echo'<hr>'; echo $kkk->display();
点击 "运行实例" 按钮查看在线实例
相关截屏:
子类公开:
子类受保护:
子类私有:
三种访问限制符就可以类比与人与人之间的相处,和陌生人谈公开内容(public),和好朋友说与自己相关内容(protected),和父母说私人问题(private),子类就相当于自己的儿子,父母的私事不会和儿子说(private),但是作为家庭一份子,他可以知道我的过往(protected)。
子类的应用场景也是一样,可以子承父业,可以再拓市场,也可以走自己的路(1.代码复用,继承父类中的成员(代码)2.功能扩展3.方法重写)