6、php Interface 接口

interface 接口

使用接口(interface),可以指定继承类必须实现那些方法,方法必须都是共有,且不需要定义这些方法的具体内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//声明接口
interface iTest{
public function test(); //定义方法无需实现
public function sayHi($username);
}
//实现接口
class Test1 implements iTest{
//实现方法
public function test(){
echo 'this is a test<br/>';
}
public function sayHi($username){
echo 'Say Hi to '.$username.'<br/>';
}
}

实现多个接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
interface iA{
public function test00();
}
interface iB{
public function test11();
}
interface iC{
public function test22();
}
//集成多个接口
class Test2 implements iA,iB,iC{
public function test00(){
echo '00000<br/>';
}
public function test11(){
echo '11111<br/>';
}
public function test22(){
echo '22222<br/>';
}
}

###也可以一个类集成另外一个类,再集成多个接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class Parent1{
public function hello(){
echo 'hello parent<br/>';
}
}
class Child1 extends Parent1 implements iA,iB{
public function test00(){
echo 'qqqq<br/>';
}
public function test11(){
echo 'wwwww<br/>';
}
}


//接口可以继承另外的接口,可以继承多个接口
interface iD extends iA,iB,iC{
const PI=3.14;
const COUNTY='China';
public function test33();
}
class Test3 implements iD{
public function test33(){
echo 'this is a test33...<br/>';
}
public function test00(){
echo '00000a<br/>';
}
public function test11(){
echo '11111b<br/>';
}
public function test22(){
echo '22222c<br/>';
}
}