PHP接口interface

1、接口的基本概念?

1)PHP 类是单继承,也就是不支持多继承。
2)当一个类需要多个类的功能时,单继承就无能为力了,为此 PHP 引入了类的接口技术。
3)多人合作开发项目时,需要规范各个功能的名称,就需要用到接口技术。
4)接口就是一种标准,一种规范。类的功能实现,按照标准接口实现即可;
5)接口是一种特殊的抽象类,接口常用在大型项目。

2、接口定义和实现要点

1)interface关键字定义接口;
2)Implements关键字用来实现接口;
3)接口中方法权限必须是public;
4)接口中方法默认是抽象的,所以不需要在方法名前面加 abstract ;
5)接口中方法可以是成员方法,也可以是静态方法;
6)接口中也可以定义常量,但常量不能重写;
7)类可以实现(implements)多个接口(相当于把多个功能集于一身,如手机实现了小灵通、MP3、MP4的功能);
8)接口也可以继承接口;

3、实例:接口的定义和实现演示
//定义第1个接口
interface Inter1
{
    //常量
    const TITLE = "<<<标题>>>";
    //静态的抽象方法
    public static function readMe();
} 
//定义第2个接口
interface Inter2
{
    //公共的成员的抽象方法
    public function showInfo();
}
//定义学生类,并实现多个接口功能
final class Student implements Inter1,Inter2
{
    //重写Inter1接口中readMe()抽象方法
    public static function readMe()
    {
        echo __METHOD__;
    }
    //重写Inter2接口中showInfo()抽象方法
    public function showInfo()
    {
        echo __METHOD__;
    }
}
//创建学生类对象
$stu = new Student();
$stu->readMe();
echo "<br>";
$stu->showInfo();
结果如下:
图片.png
图片.png
4、实例:创建手机类并实现小灵通接口、MP3接口、MP4接口
//定义小灵通接口
interface XiaoLingTong
{
    //打电话方法
    public function tel();
}
//定义mp3接口
interface Mp3
{
    //听音乐
    public function music();
}
//定义mp4接口
interface Mp4 extends Mp3
{
    //看电影
    public function video();
}
//定义手机类并实现以上所有接口的功能
final class Mobile implements XiaoLingTong,Mp4
{
    //重写抽象方法
    public function tel(){
        echo "正在打电话<br>";
    }
    public function music(){
        echo "正在听音乐<br>";
    }
    public function video(){
        echo "正在看电影<br>";
    }
    //公共的玩游戏方法
    public function game(){
        echo "正在玩游戏";
    }
}
//创建手机类对象
$mob = new Mobile();
$mob->tel();
$mob->music();
$mob->video();
$mob->game();

猜你喜欢

转载自blog.csdn.net/csdn_heshangzhou/article/details/80961702