总结:
1.类继承:在子类上使用关键字extends
2.php不支持多继承,仅允许从一个父类上继承
3.父类又叫超类或基类,通常只提供一些最基本的功能
4.子类又叫派生类,可以继承父类中的公共和受保护的成员
实例
class Index
{
// public $brand;
protected $brand;
protected $model;
protected $price;
//构造方法
public function __construct($brand,$model,$price)
{
$this->brand = $brand;
$this->model = $model;
$this->price = $price;
}
public function call()
{
return '学习';
}
}
/**
* 1.类继承:在子类上使用关键字extends
* 2.php不支持多继承,仅允许从一个父类上继承
* 3.父类又叫超类或基类,通常只提供一些最基本的功能
* 4.子类又叫派生类,可以继承父类中的公共和受保护的成员
*
* 子类的功能是用来扩展或重载父类的某些功能
*/
class Index1 extends Index
{
//创建查询器,实现外部访问
public function __get($name)
{
return $this->$name;
}
//对父级进行扩展,增加新的属性
private $camera=false;
private $internet=false;
//必须使用构造方法使新增属性生效
public function __construct($brand,$model,$price,$camera,$internet)
{
//调用付类的构造器初始化属性
parent::__construct($brand,$model,$price);
$this->camera=$camera;
$this->internet=$internet;
}
//新增的方法,扩展父类的方法
public function geme()
{
return '玩游戏';
}
//将父类方法进行重写,功能重载,必须使用与父类一样的方法名call()
public function call()
{
// return '看电影,听歌,导航';
//更多时候我们只是在上面编辑新的功能
return parent::call().'看电影,听歌,导航';
}
}
//使用自动加载器来加载类
spl_autoload_register(function($className){
require './'.$className.'.php';
});
$index1 = new Index('MIUI','5plus',1600,true,true);
//输出父级的属性
echo '品牌:'.$index1->brand.'
';
echo '型号:'.$index1->model.'
';
echo '价格:'.$index1->price.'
';
//输出子类扩展的属性
echo '看视频:'.($index1->camera?'支持':'不支持').'
';
echo '上网:'.($smartPhone->internet?'支持':'没有').'
';
运行实例 »
点击 "运行实例" 按钮查看在线实例
子类的功能是用来扩展或重载父类的某些功能