Welcome 微信登录

首页 / 网页编程 / PHP / PHP接口

PHP接口2016-12-30 本站 guaitu什么是接口?接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。

接口是更加抽象的抽象类,抽象类里的方法可以有方法体,而接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低偶拿来设计思想。

1、接口的基本语法

interface 接口名(

//属性

//方法

}

例:

<?php
//使用程序模拟现实生活中的USB接口
//接口一般用于定义规范(方法/属性)
interface iUsb{
public function start();
public function stop();
}
//编写手机类,让它去实现接口
//当一个类实现了某个接口,则要求该类必须实现这个接口的所有方法
class Camera implements iUsb{
public function start(){
echo "相机开始工作"."<br />";
}
public function stop(){
echo "相机停止工作"."<br />";
}
}
//编写手机类
class Phone implements iUsb{
public function start(){
echo "手机开始工作"."<br />";
}
public function stop(){
echo "手机停止工作"."<br />";
}
}
//如何使用
$camera=new Camera();
$camera->start();
$camera->stop();
$phone1=new Phone();
$phone1->start();
$phone1->stop();
?>
2、接口的方法都不能有方法体。

3、如何使用接口?格式如下:

class 类名 implements 接口名1,接口名2,...{

}

4、接口的作用,声明一系方法,待其它的类来实现这些方法。

什么情况下使用接口?

1 定规范

2 定下规范,让别的程序员来实现

3 多个类之间没有继承关系,是平级的,这些类都会去实现某个功能,只是实现的方式不一样。

使用接口的注意事项

1)不能去实例化一个接口。

2)接口中的所有方法,都不能有方法体;

3)一个类可以有多个接口,用逗号隔开。例如:

public class 类名 implements 接口1,接口2...{

}

4)接口中可以有属性,但必须是常量,默认是public

例:

<?php
interface iUsb{
const A=90; //定义常量,前面不能加$符号
}
echo "ok".iUsb::A; //取出接口中常量A的值
?>
5)接口中的方法,默认都是public的

6)一个接口不能继承其它的类,但是可以继承别的接口

<?php
interface iUsb2{
}
interface iUsb3{
}
interface iUsb extends iUsb2,iUsb3{
const A=90; //定义常量,前面不能加$符号
}
echo "ok".iUsb::A; //取出常量A的值
?>
一个接口可继承多个接口,当一个类实现了某些接口,则必须把所有接口中的方法都实现

例2:

<?php
interface iUsb2{
public function a();
}
interface iUsb3{
public function b();
}
interface iUsb extends iUsb2,iUsb3{ //接口iUsb继承了iUsb2和iUsb3两个接口
const A=90; //定义常量,前面不能加$符号
}
//类Class1必须把三个接口中的方法全部实现,否则会报错
class Class1 implements iUsb{
public function a(){
}
public function b(){
}
public function test(){
}
}
echo "ok".iUsb::A; //取出常量A的值
?>
实现接口与继承类的比较

1)php的继承是单继承,也就是一个类最多只能有一个父类。这种机制,对于类功能的扩展有一定的影响

2)实现接口可以看作是对继承的一种补充。

3)实现接口,可在不打破继承关系的前提下,对某个类功能进行扩展。

URL: http://www.bianceng.cn/webkf/PHP/201612/50488.htm