为什么我们需要在PHP中使用接口?

2024 年 8 月 29 日 | 5 分钟阅读

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

一个单独的类不能实现两个同名方法的功能,因为编译器会返回一个错误。类似地,像trait一样,我们也可以使用接口来访问多重继承,因为一个类可以初始化多个接口,这最终有助于从多个父类继承特性。

示例

输出

very sweet !!!

在上面的程序中,我们声明了一个接口 fruit,其中包含一个函数 taste()。我们声明了一个类 mango 并将接口 fruit 分配给它;我们定义了函数 taste()。最后,我们创建了一个对象并调用了我们的子类。由于接口的存在,我们的子类 mango 可以访问接口 fruit 并从中检索函数 taste()

接口的用途

1) 继承父类的属性

要使用类实现接口,我们必须使用 implement 关键字和 expand 关键字来分配父类的层次结构

语法

示例

输出

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 的 extendsimplement 属性继承了接口中的函数。此外,我们还在子类中定义了我们的 interfaceFunction()。为了访问类和接口,我们创建了一个对象 obj 并使用同一个对象调用了所有函数。

2) 继承多个接口的属性

要使用类实现接口,我们必须使用 implement 关键字,并且一个类甚至可以同时实现多个接口

示例

输出

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 关键字轻松地在两个类之间建立层次结构。