博客列表 >实例演示子类的三个应用场景, 实例演示类成员的三种访问限制符的使用场景-0930

实例演示子类的三个应用场景, 实例演示类成员的三种访问限制符的使用场景-0930

风吹的博客
风吹的博客原创
2019年10月29日 11:19:05678浏览

实例

<?php 
//子类的三类应用场景
//先创建父类
namespace _k;
class kk{
	public $name;
	public $v;

	public function __construct($name,$v)
	//魔术方法,构造函数,括号内变量值(参数值)由外部传入
	{
		$this->name=$name;
		$this->v=$v;

	}
	public function getInfo()
	{
		return '名字:'.$this->name.',速度:'.$this->v.'m/s';
	}
} 
//子类.1.代码复用,继承父类中的成员(代码)
class k1 extends kk
{

}
$k1= new k1('小红',3);
echo $k1->getInfo() ;
echo'<hr>';
//exit;
//2.功能扩展
class k2 extends k1
{
	public $t;

	public function __construct($name,$v,$t)
	{
		//引用父类构造中使用的代码
		parent::__construct($name,$v);
		$this->t=$t;

	}
	//子类中添加一个新方法,计算路程
	public function add()
	{
		return ($this->v*$this->t);
	}
}
$k2= new k2('小明',5,2);
echo $k2->name.'2秒的路程是:'.$k2->add();
echo '<hr>';
//3.方法重写
class k3 extends k2
{
	//重写add
	public function add()
	{
		return ($this->v*$this->t*0.8);

	}
}
$k3=new k3('小蓝',7,2);
echo $k3->name.'2秒的路程是:'.$k3->add();

运行实例 »

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

子类应用.png

访问限制符:

实例

<?php
//三种访问限制符,public,protected,private
namespace _0930;
class k4
{
	public $name;//名字,公开
	public $department;//部门,公开
	protected $age;//年龄,受保护
	private $position;//职位,私有
	

	public function __construct($name,$department,$age,$position)
	{
		$this->name=$name;
		$this->department=$department;
		$this->age=$age;
		$this->position=$position;
		

	}
	public function getAge()
	{
		return $this->department==='分部'?$this->age:'无权查看';
	}
	public function getPosition()
	{
		return $this->department==='总部'?$this->position:'无权查看';
	}
}
$obj= new k4('小唐','分部',22,'分部大佬');
echo $obj->name;
echo '<br>';
echo $obj->department;
echo'<br>';
echo $obj->getAge();
echo'<br>';
echo $obj->getPosition();
//在子类中,显示区别
class kkk extends k4
{
	public function display()
	{
		//return $this->name;//公开
		//return $this->department;//公开
		//return $this->age;//受保护
		return $this->position;//私有

	}
}
echo '<hr>';
$kkk = new kkk('小飞','总部',666,'总部头头');
echo $kkk->name;
echo '<br>';
echo $kkk->department;
echo'<br>';
echo $kkk->getAge();
echo'<br>';
echo $kkk->getPosition();
echo'<hr>';
echo $kkk->display();

运行实例 »

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

相关截屏:

存.png

子类公开:

子类公开.png

子类受保护:

子类受保护.png

子类私有:

子类私有.png

三种访问限制符就可以类比与人与人之间的相处,和陌生人谈公开内容(public),和好朋友说与自己相关内容(protected),和父母说私人问题(private),子类就相当于自己的儿子,父母的私事不会和儿子说(private),但是作为家庭一份子,他可以知道我的过往(protected)。

子类的应用场景也是一样,可以子承父业,可以再拓市场,也可以走自己的路(1.代码复用,继承父类中的成员(代码)2.功能扩展3.方法重写)

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议