zoukankan      html  css  js  c++  java
  • 接口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
  • 相关阅读:
    Oracle数据库event事件与dump文件介绍
    (原)dbms_rowid.rowid_create来创建一个rowid
    Oracle读取事件的命名理由(哈哈)
    关于删除temporary tablespace的一点小建议
    oracle的rowid到底是什么
    电脑高手最常用的五个组合键
    win2008里如何取消IE游览器弹出增强的安全配置?
    经典SQL语句大全
    Win7中安装Rational Rose,启动提示计算机丢失suite objects.dll
    Asp.net页面跳转
  • 原文地址:https://www.cnblogs.com/andy9468/p/4238558.html
Copyright © 2011-2022 走看看