Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:写得不错哟, 抽象与接口是现代编程的基础,非常重要
<?php
//抽象类(有一个抽象方法setName())
abstract class Demo1
{
//成员属性
public $name;
//构造方法
public function __construct($name)
{
$this->name = $name;
}
//返回用户名
public function getName()
{
return '该用户名字:'.$this->name;
}
//重置用户名的抽象方法
public abstract function setName($value);
}
//继承抽象类
class demo2 extends Demo1
{
//继承父类构造方法
public function __construct($name)
{
parent::__construct($name);
}
//实现父类当中的抽象方法
public function setName($value)
{
return $this->name = $value;
}
}
//客户端调用
//实例化子类
$obj = new Demo2('hhappysong');
echo $obj->getName();
echo '<hr>';
//调用父类属性,重新赋值
$obj->name = 'peter';
echo $obj->getName();
echo '<hr>';
//调用已经在子类中实现的父类中的方法setName()
$obj->setName('Jack');
echo $obj->getName();
<?php
interface iDemo3
{
//分布方式
public function setLocation($location);
//出租方式
public function setRent($rent);
}
class Room implements iDemo3
{
public $location;
public $rent;
//必须实现setLocation()
public function setLocation($location)
{
$this->location = $location;
}
//必须实现setRent()
public function setRent($rent)
{
$this->rent = $rent;
}
//自定义方法
public function getInfo()
{
return '这是'.$this->location.$this->rent.'***';
}
}
//客户端调用
//实例化
$obj = new Room();
//调用setLocation()设置分布方式
$obj->setLocation('分散式');
//调用setRent()设置出租方式
$obj->setRent('合租');
//调用getInfo()获取出租相关信息
echo $obj->getInfo();