Correcting teacher:查无此人
Correction status:qualified
Teacher's comments:完成的不错,继续加油。
abstract
定义抽象方法或抽象类
<?php
abstract class Shop{
public $name;
public $price;
public function __construct($name,$price)
{
$this->name = $name;
$this->price = $price;
}
abstract public function getInfo($num);
}
class Computer extends Shop{
// 构造方法不会自动继承, 必须手动重写
public function __construct($name, $price)
{
parent::__construct($name, $price);
}
public function getInfo($num)
{
return $this->name . '的价格为:' . $this->price . ',购买数量为:' . $num . '台';
}
}
$c = new Computer('小米笔记本',4599);
echo $c->getInfo(3);
?>
interface
定义接口implements
类实现接口的关键字
<?php
interface User{
public function role($role);
public function right($right);
}
class Member implements User{
public $name;
public function __construct($name)
{
$this->name = $name;
}
public function role($role)
{
return $this->name . '是' . $role;
}
public function right($right)
{
return $this->name . '权限有' . $right;
}
}
$m = new Member('猪小明');
echo $m->role('会员') . '<br>';
echo $m->right('去广告');
?>
抽象类的两个特点:不能实例化、类中抽象方法,在子类中必须全部实现
如果不能将接口中方法全部实现就用抽象类来实现它
否则,就必须把接口中的方法全部实现
抽象和接口区别:
抽象可以有普通方法,成员变量。
接口不可以有普通方法,不可以有成员变量。