首页> 基础笔记 >PHP基础学习 >面向对象 面向对象

PHP接口技术

作者:小萝卜 2019-09-05 浏览 1131

简介PHP与大多数面向对象编程语言一样,不支持多重继承,也就是说每个类只能继承一个父类。为了解决这个这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列函数。

PHP与大多数面向对象编程语言一样,不支持多重继承,也就是说每个类只能继承一个父类。为了解决这个这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列函数。
如果在一个抽象类中包含的只有抽象方法,可以将其定义为interface(接口),用implements(实现)关键字使用它。
    定义格式:     
               interface  接口名称{
                          //常量成员    (使用const关键字定义)
                          //抽象方法    (不需要使用abstract关键字)
                 }
   使用格式:     
             class   类名   implements   接口名1,接口名2{ ... ...  }
   当一个类在继承了一个接口后,它必须实现即覆盖该接口的所有方法才可以实例化使用,否则即为抽象类。

实例1:
 

<?php
    //声明一个接口使用interface关键字,One为接口名称
    interface One {                             
        const CONSTANT = 'CONSTANT value'; //在接口中声明常量成员属性和在类中声明一样
        function fun1();                        //在接口中声明一个抽象方法“fun1()”
        function fun2();                        //在接口中声明另一个抽象方法“fun2()”
    }
    //声明一个抽象类去实现接口One中的第二个方法
    abstract class Three implements One {           
        function fun2() {                       //只实现接口中的一个抽象方法
            //具体的实现内容由子类自决定
        }
    }
    //声明一个类实现接口One中的全部抽象方法
    class Four implements One {                     
        function fun1() {                       //实现接口中第一个方法
            //具体的实现内容由子类自决定
        }   
        function fun2() {                       //实现接口中的第二个方法
            //具体的实现内容由子类自决定
        }
    }

实例2:
 

<?php
//接口:
//定义一个Demo接口,内部只有抽象方法和常量定义
interface Demo{
    const PI=3.14; //定义常量属性
    public function fun1(); //定义抽象方法,而且抽象方法关键字abstract不用写
    
    public function fun2();
    
    public function fun3();
}

//定义一个类A去实现接口Demo
abstract class A implements Demo{
    public function fun1(){
        echo "fun1....<br/>";
    }
    
    public function fun2(){
        echo "fun2....<br/>";
    }
}

class B extends A{
    public function fun3(){
        echo "fun3....<br/>";
    }
}

//此时B类就可以实现了
$b = new B();
$b->fun1();
$b->fun2();
$b->fun3();

很赞哦! (0)

文章评论

    高端网站建设