1.接口类
接口中只允许声明二类成员:类常量、公共抽象方法,接口中不能写属性,方法必须是public,可以写常量
使用接口必须创建一个实现类,在实现类中必须将接口中声明的抽象方法全部实现
一个类可以实现多个接口,中间用逗号隔开,实现了PHP的单继承限制
<?php
// 定义一个接口
// 声明
interface Demo
{
// 接口常量
const APP_TITLE = '小程序';
// 公共抽象方法,没有实现过程
public static function a1(...$args):string;
// 构造方法
public function __constract(...$args);
}
// 实现类
class Demo1 implements Demo
{
// 将接口中的抽象方法实现
public static function a1(...$args):string
{
return print_r($args,true);
}
// 构造方法
public function __constract(...$args)
{
return new static;
}
}
$obj = new Demo1();
echo Demo1::APP_TITLE,'<br>';
?>
2.抽象类
抽象类不能实例化对象、抽象类的存在就是为了让子类继承
抽象类里的抽象方法必须由子类实现,且抽象类必须通过它的子类才可以使用
<?php
// 抽象类
abstract class Model
{
public function find()
{
}
public function init()
{
}
// 抽象方法
abstract public function __construct();
abstract public function show();
}
// 抽象类必须通过它的子类才可以使用
class MobileModel extends Model
{
// 子类必须将抽象类的抽象方法实现了
public function __construct()
{
}
public function show()
{
return 'Hello,World!';
}
}
$mb = new MobileModel();
echo $mb->show();
?>