继承特性简化了对象、类的创建,增加了代码的可重用性。但是php8只支持单继承,如果想实现多继承,就需要使用接口。PHP8可以实现多个接口。
接口类通过关键字interface来声明,接口中不能声明变量,只能使用关键字const声明为常量的成员属性,接口中声明的方法必须是抽象方法,并且接口中所有的成员都必须是 public 的访问权限。
语法格式如下:
interface 接口名称{ //使用 interface 关键字声明接口
常量成员 //接口中的成员只能是常量
抽象方法 //https://www.phpfw.com/tag/chengyuanfangfa/必须是抽象方法
}
与继承使用extends关键字不同的是,实现接口使用的是implements关键字:
class 实现接口的类implements 接口名称
实现接口的类必须实现接口中声明的所有方法,除非这个类被声明为抽象类。
使用关键字interface来声明使用接口,参考代码:
<?php
interface Intfruit{
//这两个方法必须在https://www.phpfw.com/tag/zilei/中继承,https://www.phpfw.com/tag/xiushifu/必须为public
public function getName();
public function getPrice();
}
class Fruit implements Intfruit{
https://www.phpfw.com/tag/private/ $name = '苹果';
private $price = '8.88元';
//具体实现接口声明的方法
public function getName(){
return $this->name;
}
public function getPrice(){
return $this->price;
}
//这里还可以有自己的方法
public function getOther(){
return '今日的特价水果是苹果!';
}
}
$fruit = new Fruit();
echo '水果的名称是:'.$fruit->getName();
echo '<br/>';
echo '水果的价格是:'.$fruit->getPrice();
echo '<br/>';
echo $fruit->getOther();
?>
以上代码在PHP8中的运行结果是:
水果的名称是:苹果
水果的价格是:8.88元
今日的特价水果是苹果!
到此为止,使用关键字interface来声明使用接口就讲解完毕了。