• 接口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
  • 相关阅读:
    Javascript作用域研究(with)
    Javascript判断object还是list/array的类型(包含javascript的数据类型研究)
    Javascript两个感叹号的用法(!!)
    Javascript中两个等于号和三个等于号的区别(==/===)
    IIS配置MP3/MP4/OGG/flv等资源文件访问
    生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)
    记录一次:微信支付申请时,网站不通过/统一驳回的问题解决方法
    C# 扩展系统类方法
    Javascript获取div真实高度
    Jquery获取offsetHeight
  • 原文地址:https://www.cnblogs.com/andy9468/p/4238558.html
Copyright © 2020-2023  润新知