PHP 为什么我们需要接口

PHP 为什么我们需要接口

接口是PHP的另一个特性,使开发人员能够构建没有任何复杂方法的程序。它继承了类所具有的相同的公共方法。由于这些特性,接口可以定义方法。但我们不能在接口中定义方法,我们必须在调用接口的子类中定义方法。接口与类也类似,唯一的区别是类被接口修改,并且方法中没有定义任何内容。我们在PHP中使用接口。

一个类不能实现两个具有相同方法名的函数,否则编译器将返回错误。类似于traits,我们还可以使用接口来实现多继承,因为一个类可以初始化多个接口,这最终将有助于从多个父类继承traits。

示例

<!DOCTYPE html>
<html>
<body>

<?php
interface fruit {
  public function taste();
}

class mango implements fruit {
  public function taste() {
    echo "very sweet !!!";
  }
}

fru = new mango();fru->taste();
?>

</body>
</html>

输出:

very sweet !!!

在以上的程序中,我们声明了一个名为fruit的接口,内部有一个名为taste()的函数。我们声明了一个名为mango的类,并将接口fruit分配给它;我们定义了函数taste()。最后,我们创建了一个名为all的对象,称为我们的子类。由于接口的存在,我们的子类mango可以访问接口fruit,并从中检索函数taste()。

使用接口的用途:

1)继承父类的属性 为了使用类实现接口,我们必须使用implement关键字和expand关键字来分配父类的层次结构。

语法:

Class parent - class{
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

Interface interface - name {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
  Function return type ()
}

Class child - class expands parent - class implements interface - name{
Function return type(){
Function description. .
. . . . . . . . . . . . 
}
}

示例:

<?php

class parentClass {
   public function parentFunction() {
    echo "this is the first class";
     }
}

interface firstInterface {
   public function interfaceFunction();
}

class childClass extends parentClass implements firstInterface {

    function interfaceFunction() {
        echo " this is interface which is defined inside child class";
    }

    public function childFunction() {
    echo " this is inherited child class using interface ";
    }
}

obj = new childClass(); obj -> parentFunction();
obj -> interfaceFunction(); obj -> childFunction();
?>

输出:

this is the first class 
this is interface which is defined inside child class 
this is an inherited child class using an interface

在上面的程序中,我们有一个名为parentClass的父类,它包含一个名为parentFunction()的函数。我们还有一个名为firstInterface的接口,其中包含名为interfaceFunction()的函数。然而,我们无法在创建的接口内定义声明的函数,我们必须在子类内定义声明的函数。最后,我们有一个名为childClass的子类,它具有函数childFunction(),并通过PHP的extends和implement属性继承了接口中的函数。此外,我们在子类中定义了interfaceFunction()。为了访问这些类和接口,我们创建了一个名为obj的对象,并使用该对象调用了所有的函数。

2) 继承多个接口的属性 要使用类实现接口,我们必须使用implement关键字,并且一个类甚至可以同时实现多个接口。

Interface first - interface {
  Statement . . .
  . . . . . . . . 
  Function return one ()

}

Interface second - interface {
  Statement . . .
  . . . . . . . . 
  Function return two ()

}

Class child - class implements first - interface, second - interface  {
  Statement . . .
  . . . . . . . . 
  Function return one(){
  Function description. .
  . . . . . . . . . . . . 
  }
  Function return two(){
  Function description. .
  . . . . . . . . . . . . 
  }

}

示例:

<?php

interface firstInterface {
   public function interfaceone();
}

interface secondInterface {
   public function interfacetwo();
}

class childClass implements firstInterface, secondInterface {

    function interfaceone() {
        echo "this is the first interface";
    }

    function interfacetwo() {
        echo "this is the second interface";
    }

    public function childFunction()
    {
        echo "this is child inherited from both interfaces";
    }
}

obj = new childClass();obj->interfaceone();
obj->interfacetwo();obj->childFunction();
?>

输出:

this is the first interface
this is the second interface
this is a child inherited from both interfaces

在上面的程序中,我们声明了两个接口,第一个接口的名称是 firstInterface ,具有函数 interfaceone() ;第二个接口的名称是 secondInterface ,具有函数 onterfacetwo() 。然而,我们只声明了接口函数,并且将在子类中定义相同的函数 最后,我们有一个子类,名称是 childClass ,具有函数 childFunction() ,并使用 implements 子句继承了这两个接口。在函数内部,我们为接口中声明的函数给出了定义 为了访问类和接口,我们创建了一个名为obj的对象,并使用相同的对象调用了所有的函数。

使用接口的重要性:

  • 接口提供给开发者一种更结构化的格式,这在类中很难实现。
  • 我们可以在单线程编程语言(如PHP)中使用接口轻松实现面向对象编程的多重继承属性。
  • 通过实现接口,对象的调用者只需要关注对象的接口,而不是对象方法的实现。
  • 接口允许不相关的类实现相同的方法,而不管它们在类继承层次结构中的位置如何。
  • 我们不能使用相同的方法名实现多个接口,否则会导致混淆和方法的歧义。
  • 我们可以使用 extend 关键字轻松地在两个类之间建立层次结构。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程