批改状态:合格
老师批语:
父子类重载效果图:

父子类重载父类源代码: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()是子类中的方法点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号