类的继承
子类自动继承父类的公开属性以及受保护的属性
子类还可以对父类的方法进行重写
子类扩展父类
<?php class Person { protected $height = '163cm'; protected $weight = '55kg'; public function run(){ return '一小时能跑10km'; } } Class Peter extends Person { protected $height = '168cm'; protected $name = 'peter'; public function run(){ return $this->name.'的身高:'.$this->height. ',体重:'.$this->weight. Parent::run(); } public function eat(){ return $this->name . '喜欢吃鱼'; } } $peter = new Peter(); echo $peter->run(),'<br>'; echo $peter->eat(),'<br>';
2.抽象类
部分分离了" 设计(抽象类中完成)与实现(工作类中完成)"
<?php abstract class Goods { protected $name; public function setName($name){ $this->name = $name; } abstract public function getName(); } class Books extends Goods { public function getName(){ return $this->name; } } $book = new Books(); $book->setName('php从入门到精通'); echo $book->getName();
3.接口
完成分离了"设计与实现"
<?php interface Goods { function add(); function update(); } class GoodsA implements Goods { public function add(){ echo '实现添加方法<br>'; } public function update() { echo '实现更新方法<br>'; } } $goodsA = new GoodsA(); $goodsA->add(); $goodsA->update();
总结:类的继承可以让我们快速获得父类的属性;抽象类中一般有抽象的方法,继承抽象类的时候要先实现抽象方法,接口是一种完全封装的,分离了设计与实现,接口中只有抽象方法。