父子类重载效果图:
父子类重载父类源代码:LcdTv.php
实例
/** 创建液晶显示器类 */ class LcdTv { protected $brand;//品牌 protected $model;//型号 protected $size;//尺寸 protected $price;//价格 //构造方法 public function __construct($brand,$model,$size,$price) { $this->brand = $brand; $this->model = $model; $this->size = $size; $this->price = $price; } public function call() { return '看电影'; } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
父子类重载子类源代码:LedTv.php
实例
<?php class LedTv extends LcdTv { //创建查询器,实现了外部访问 public function __get($name) { return $this->$name; } //1.对父类属性进行扩展,增加新功能,如果不在子类中使用,推荐设置为private private $wifi = false; //是否有无线功能 private $surface = false; //是否曲面屏 //必须使用构造方法对使用当前新属性生效 public function __construct($brand, $model, $size, $price, $wifi, $surface) { //调用父类构造器初始化类属性 parent::__construct($brand, $model, $size, $price); $this->wifi = $wifi; $this->surface = $surface; } //2.增加新的方法,扩展父类的功能 public function game() { return '玩游戏'; } //3.将父类方法进行重写,就是功能重载,必须使用与父类一样的方法名:call() public function call() { //此时,访问call()将会输出子类定义的功能 //但更多的时候,我们并不会放弃原有功能,而只是在它上面进行追回而已 //那么,如何在子类中引用父类中的方法呢? 使用关键字: parent,后面跟上双冒号:: return parent::call().',同时还能看网络电视,听音乐,看大片'; } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
父子类重载测试源代码:index.php
实例
<?php /** 测试效果 */ //使用自动加载器来加载类: spl_autoload_register(function($className){ // require './class'.$className.'.php'; $path = __DIR__.'/class/'.$className.'.php'; if (is_file($path) && file_exists($path)) { require $path; } }); $ledtv = new LedTv('小米','小米电视4S',55,3999,true,true); echo '品牌:'.$ledtv->brand.'<br>'; echo '型号:'.$ledtv->model.'<br>'; echo '尺寸:'.$ledtv->size.'<br>'; echo '价格:'.$ledtv->price.'<br>'; //下面输出二个在子类中扩展的属性 echo '曲面屏:'.($ledtv->surface?'支持':'不支持').'<br>'; echo '无线上网:'.($ledtv->wifi?'支持':'不支持').'<br>'; echo $ledtv->call().'<br>'; //call()是父类中的方法 echo '最大的特色功能是:'.$ledtv->game().'。<br>'; //game()是子类中的方法 echo '<hr color="red">'; $ledtv = new LedTv('乐视','乐视超级电视LV6',65,9999,true,true); echo '品牌:'.$ledtv->brand.'<br>'; echo '型号:'.$ledtv->model.'<br>'; echo '尺寸:'.$ledtv->size.'<br>'; echo '价格:'.$ledtv->price.'<br>'; //下面输出二个在子类中扩展的属性 echo '曲面屏:'.($ledtv->surface?'支持':'不支持').'<br>'; echo '无线上网:'.($ledtv->wifi?'支持':'不支持').'<br>'; echo $ledtv->call().'<br>'; //call()是父类中的方法 echo '最大的特色功能是:'.$ledtv->game().'。<br>'; //game()是子类中的方法
运行实例 »
点击 "运行实例" 按钮查看在线实例