PHP interface接口的用法(附带实例)
在 PHP 程序中,继承特性简化了对象和类的创建,增加了代码的可重用性。但是 PHP 只支持单继承,如果想实现多继承,就需要使用接口,PHP 可以实现多个接口。
接口类通过关键字 interface 来声明。接口中不能声明变量,只能使用关键字 const 声明为常量的成员属性,接口中声明的方法必须是抽象方法,并且接口中所有的成员都必须具有 public 访问权限。
接口具体的使用语法格式如下:
【实例】PHP接口的使用。
接口类通过关键字 interface 来声明。接口中不能声明变量,只能使用关键字 const 声明为常量的成员属性,接口中声明的方法必须是抽象方法,并且接口中所有的成员都必须具有 public 访问权限。
接口具体的使用语法格式如下:
interface接口名称{ //使用interface关键字声明接口 //常量成员 //接口中的成员只能是常量 //抽象方法 //成员方法必须是抽象方法 }与继承使用 extends 关键字不同的是,实现接口使用的是 implement 关键字:
class 接口类 implement 接口名称{}实现接口的类必须实现接口中声明的所有方法,除非这个类被声明为抽象类。
【实例】PHP接口的使用。
<?php interface MaxMin{ // 这两个方法必须在子类中继承,修饰符必须为 public public function getMax(); public function getMin(); } class msm implements MaxMin { private $aa = 33; private $bb = 66; // 具体实现接口声明的方法 public function getMax(){ return $this->bb; } public function getMin(){ return $this->aa; } // 这里还可以有自己的方法 public function getOther() { return '这里是自己的方法'; } } $msm = new msm(); echo $msm->getMax(); echo '<br/>'; echo $msm->getMin(); echo '<br/>'; echo $msm->getOther(); ?>运行结果为:
66
33
这里是自己的方法
- 在 PHP 中,类的继承只能是单独继承,即由一个父类(基类)继承,而且可以一直继承下去。PHP 不支持多方继承,即不能由一个以上的父类继承,即类 C 不能同时继承类 A 和类 B。
- 由于 PHP 支持多方继承,为了对特定类的功能进行拓展,可以使用接口(interface)来实现类似于多方继承的好处。接口用 interface 关键字声明,并且单独设置接口方法。
- 一个类可以继承于一个父类,同时使用一个或多个接口。类还可以直接继承于某个特定的接口。
- 类、类的属性和方法的访问都可以通过访问修饰符进行控制。访问修饰符放在属性和类的前面,public 表示公共属性或方法,private 表示自有属性或方法,protected 表示可继承属性或方法。
- 关键字 final 放在特定的类前面,表示此类不能再被继承。final 放在某个类方法前面,表示此方法不能在继承后被“覆写”或重新定义。