接口技术
什么叫做接口?
看接口的“发展历程”:
类 --> 抽象类 --> 比抽象类更抽象的某种“结构形式”:接口;
接口:跟抽象类比:
接口中只有抽象方法——和常量;
抽象类中可以有抽象方法,也可以有其他各种成员;
示例代码:
abstract class C1{
const p1 = 1;
public $p2 = 2;
static $p3 = 3;
function f1(){ 。。。。 };
static function f2(){ 。。。。 }
abstract function f3();
}
将上述抽象类中的“具体”的成员抽掉,就剩下:
interface C1{
const p1 = 1;
abstract function f3();
}
实际上,接口本身其实跟只有常量和抽象方法的抽象类是一样的形式!
但,之所以换个名字叫做接口,是因为又规定:接口可以实现多继承;
接口的使用:
设计接口的目的,是为了给“类”来继承之,并使用其中的常量和 (抽象)方法。
一个类继承一个(或多个)接口的时候,不叫继承,而是叫做“实现”(implements),
即:某个类,实现了某(几)个接口;
形式:
class 类名 【extends 父类名】 implements 接口名1,接口名2,... {
......类成员的定义;
}
接口的继承:
接口之间,也可以相互继承——此时就是称为继承;
而且,他们还可以进行多继承!
示意代码:
interface I1{.... }
interface I2{.... }
interface I3 extends I1, I2{
const PI = 3.14;
}
接口中的常量使用
形式:跟类一样,用接口名以及“::”操作符去“取用”;
echo I3::PI; //输出3.14
不求惊动动地,但求无愧于人生!