PHP实现接口

我们可以看到,只是定义了接口,什么工作也做了不,而接口的功能也就是让类来实现它的。当我们定义一个类来实现接口时,使用implements关键字,而实现一个接口时,就必须实现接口中定义的所有成员。如下面的代码。

interface IWork  
{  
    function workA();  
    function workB();  
}  

class ClsB implements IWork  
{  
    function workA()  
    {  
        echo __METHOD__;  
    }  

    function workB()  
    {  
        echo __METHOD__;  
    }  
}  

obj = new ClsB();obj->workA();  
echo '<br>';  
$obj->workB();

代码中的METHOD常量表示所在方法的完整名称,运行此代码结果如下图。

PHP实现接口

上面的代码,我们首先定义了IWork接口,其中定义了两个方法,然后,我们通过ClsA类来实现这个接口,在ClsA类中,我们必须实现IWork接口中的所有方法。在这个示例中,我们只是在方法中显示方法的名称。

此外,对于接口中定义的静态方法,也需要在类中定义相应的静态方法来实现。

我们知道,PHP中的类并不支持多重继承(一个类同时是多个类的子类),但是,一个类可以实现多个接口,如下面的代码。

interface IWorkA  
{  
    function workA();  
}  

interface IWorkB  
{  
    function workB();  
}  

class ClsB implements IWorkA, IWorkB  
{  
    function workA()  
    {  
        echo __METHOD__;  
    }  

    function workB()  
    {  
        echo __METHOD__;  
    }  
}

代码中,我们定义了两个接口,即IWorkA和IWorkB,然后,我们通过ClsA类同时实现这两个接口,只需要在implements关键字后面,使用逗号分隔多个接口名称,就可以完成一个类实现多个接口的定义。

对于一个类同时实现多个接口,有两点应该特别注意:

  • 在类中必须实现所有接口中的所有成员。
  • 各个接口中不允许有同名成员,包括静态成员和非静态成员。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程