Blogger Information
Blog 45
fans 2
comment 1
visits 26421
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
2018年5.4 17:20子类在父类的扩展,重载父类的属性
哈的博客
Original
663 people have browsed it

总结:

 1.类继承:在子类上使用关键字extends

 2.php不支持多继承,仅允许从一个父类上继承

  3.父类又叫超类或基类,通常只提供一些最基本的功能

  4.子类又叫派生类,可以继承父类中的公共和受保护的成员

实例

<?php
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 '学习';
}

}

<?php
/**
 * 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().'看电影,听歌,导航';
}

}

<?php
//使用自动加载器来加载类
spl_autoload_register(function($className){
	require './'.$className.'.php';
});
$index1 = new Index('MIUI','5plus',1600,true,true);

//输出父级的属性
echo '品牌:'.$index1->brand.'<br>';
echo '型号:'.$index1->model.'<br>';
echo '价格:'.$index1->price.'<br>';
//输出子类扩展的属性
echo '看视频:'.($index1->camera?'支持':'不支持').'<br>';
echo '上网:'.($smartPhone->internet?'支持':'没有').'<br>';

运行实例 »

点击 "运行实例" 按钮查看在线实例

子类的功能是用来扩展或重载父类的某些功能


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post