/**
* 接口类特点:子类必须实现接口类里面所定义的全部方法,用于定义一个类的模板
* 抽象类特点:子类不是必须实现父类里面所定义的全部方法,用于把类里面像的地方“ 抽 ”出来,也就是一些共有的方法可以提出来,至于不一样的地方可以在子类自身的方法里面实现,
* 父类里面定义的抽象方法即(abstract function)是子类必须实现的,且访问权限不能小于父类抽象方法的权限,抽象类里面可以包含普通方法,也可以直接调用父类的普通方法($this->function())
*/
// 接口类
interface People
{
function say();
function play();
}
class Man implements People
{
function say()
{
}
function play()
{
}
}
$man = new Man();
// 抽象类
abstract class EventGenerator
{
// 抽象方法
abstract public function abs();
// 普通方法
function A()
{
echo 'A';
}
function B()
{
echo 'B';
}
}
class Test extends EventGenerator
{
public function abs()
{
echo "实现父类的抽象方法<br/>\n";
}
public function A()
{
echo "重写父类的普通方法<br/>\n";
}
function C()
{
echo '自己本身的方法';
}
}
$t = new Test();
$t->abs();
$t->A();
$t->C();