接口interface,接口继承implements

php中,只支持从一个类继承,不支持从两个或者更多的类同时继承。从两个或者两个以上的类继承的能力被称为多重继承。php在设计上是禁止这种功能的。原因在于,避免多个类带来的复杂性。当发现需要从两个或者更多类继承时,可以将父类的方法拆开,然后使用接口来达到相同的目的。

接口虽然与类相似,但是,接口中只能包含方法原型,而不能包含任何完整的定义方法。这样可以防止使用抽象类时可能出现的方法冲突,从而能在给定的实现类上使用多个接口。然而,既然接口不能定义具有完整实现的方法,因此如果我们希望为继承者提供默认功能,就必须单独提供一个非抽象的基类。

说明:基类,就是父辈、祖辈类等;派生类,就是子类、孙子类等。

1.接口定义

使用关键字:interface

//定义一个接口ISpeedInfo
interface ISpeedInfo{
   public function getMaximumSpeed();
}

2.接口的使用

使用关键字:implements

//定义一个扩展类FastCar,并调用接口ISpeedInfo
Class FastCar extends Car implements ISpeedInfo{
    function getMaximumSpeed(){
        return 150;
    }
}

说明:扩展类FastCar,知道ISpeedInfo接口;而Car基类并不知道有ISpeedInfo接口。

注意:当我们希望调用两个或者两个以上的接口时,采用逗号分隔

Class FastCar extends Car implements ISpeedInfoA,ISpeedInfoB,ISpeedInfoC{}

3.调用接口中的方法

//调用
$a=new FastCar();
echo $a->getMaximumSpeed();

 =======完整代码======

 1 <?php 
 2 //定义一个接口ISpeedInfo
 3 interface ISpeedInfo{
 4    public function getMaximumSpeed();
 5 }
 6 
 7 //定义一个抽象类Car
 8 class Car{
 9     //任何非抽象方法
10 }
11 
12 //定义一个扩展类FastCar,并调用接口ISpeedInfo
13 Class FastCar extends Car implements ISpeedInfo{
14     function getMaximumSpeed(){
15         return 150;
16     }
17 }
18 
19     //调用
20     $a=new FastCar();
21     echo $a->getMaximumSpeed();
22 ?>
View Code
原文地址:https://www.cnblogs.com/andy9468/p/4238558.html