php interface 接口
/**
* interface 接口 接口其实是类的模板
* 接口是类的模板
* 类是对象的模板
* implements 实现接口关键字
* 定义接口是为了统一开发规范
* 接口好比是产品说明书,业务就是使用这个产品,我们只需要知道他里面有什么功能,使用这些功能即可,至于里面的业务逻辑我们不需要知道
* 在设计模块的时候一定要站长接口的高度去设计,是模块之间松耦合.
*/
interface Person//这里我们创建了两个接口方法
{
public function eat();
public function sheep();
}
class Man implements Person()
{
//这里实现接口方法时,里面的方法必须和interface接口里创建的方法一致,否则报错
public function eat()
{
echo '吃大餐';
}
public function sleep()
{
echo '睡觉';
}
}
class L
{
public static function factory(Person $user)//这里限定了所传参数必须实现了Person这个接口的实例化类对象,否则就会报错
{
return $user;
}
}
$l = L::factory(new Man());
/**
* 接口的继承
*/
interface Ia
{
const NAME = 'zhangsan';//接口里面的常量
public function eat();
}
echo Ia::NAME;//这里是访问接口里面常量的方法,和类的访问方法相同
interface Ib
{
public function sleep();
}
//继承方式一
interface AB extends Ia,Ib
{
}
class Test implements AB
{
public function eat()
{
echo '吃烧鸡';
}
public function sleep()
{
echo '不睡觉';
}
}
echo Ia::NAME;//这里是访问接口里面常量的方法,和类的访问方法相同
$test = new Test();
$test->eat();
$test->sleep();
//继承方式二
class Test implements Ia,Ib//直接实现两个接口
{
public function eat()
{
echo '吃烧鸡';
}
public function sleep()
{
echo '不睡觉';
}
}
$test = new Test();
$test->eat();
$test->sleep();