PHP中抽象类和接口的区别是什么

目录:

Anonim

主要区别 PHP中抽象类和接口之间的区别是 抽象类可以由抽象方法和非抽象方法组成,而接口中的所有方法都没有实现。

PHP 是一种服务器端脚本语言。它是 Web 开发中最流行的语言之一。 PHP 允许处理文件、处理表单、发送电子邮件、上传文件、将应用程序与 DBMS(如 MySQL)连接以及许多其他任务。 Zend 和 Code Igniter 等框架都是基于 PHP 的。 PHP 还支持面向对象编程 (OOP)。 OOP 中的一个主要概念是抽象。它有助于隐藏实现并仅向用户显示功能。抽象类和接口是实现抽象的两种方法。

抽象、抽象类、接口、OOP、PHP

PHP中的抽象类是什么

抽象方法是没有任何实现的方法。抽象类是具有至少一个抽象方法的类。它可以有抽象方法以及非抽象方法。关键字“abstract”用于声明抽象类。此外,扩展抽象类的类应该提供该类中抽象方法的实现。程序员不能使用抽象类创建对象,但他们可以从扩展抽象类的类创建对象。

图 1:PHP 中的抽象类

在上图中,Shape 是一个抽象类。它有一个叫做 draw 的抽象方法和一个叫做 display 的非抽象方法。三角形类扩展了形状。因此,三角形类提供了抽象方法 draw 的实现。在第 19 行,创建了一个 Triangle 对象。在第 20 行,使用该对象调用 draw 方法。因此,draw 方法执行并在控制台上显示“三角形”。

PHP中的接口是什么

接口中的所有方法都是抽象方法。换句话说,它只包含函数原型或没有实现的函数。程序员不能使用接口创建对象。使用“interface”关键字声明接口。即使接口中的方法是抽象的,程序员也不会使用 abstract 关键字声明它们。相反,这些方法必须具有公共可见性范围。实现接口的类应该提供其所有抽象方法的实现。

图 2:带有界面的 PHP 程序 1

在上面的程序中,Shape 是一个接口。它有一个叫做 draw 的方法。它没有实现。类 Triangle 扩展了 Shape。 Triangle 类提供了 draw 方法的实现。在第 16 行,创建了一个 Triangle 对象。在第 17 行,使用该对象调用 draw 方法。因此,draw 方法执行并在控制台上显示“三角形”。

此外,接口还有助于实现多重继承。多重继承是允许一个类使用多个类的属性和方法的过程。

图 3:带接口的 PHP 程序

接口 A 有一个方法 methodA。同样,接口 B 有一个方法 methodB。这些方法是函数原型。换句话说,这些方法没有任何实现。类Test 实现了接口A 和B。因此,该类提供了methodA 和methodB 的实现。类 Test 也有自己的方法,称为 methodTest。第 26 行,创建一个 Test 对象。然后使用该对象调用 methodA、method 和 methodTest。

PHP中抽象类和接口的区别

定义

PHP中的抽象类是用abstract关键字声明的类,是抽象方法和非抽象方法的集合。相比之下,PHP 中的接口是一种引用类型,由一组没有实现或函数原型的方法组成。因此,这是 PHP 中抽象类和接口之间的主要区别。

方法

抽象类可以有抽象方法和非抽象方法,而接口中的所有方法都是没有实现的方法。

关键词

抽象类是用“abstract”关键字声明的,而接口是用“interface”关键字声明的。

用法

PHP中抽象类和接口的另一个区别是抽象类有助于实现抽象,而接口有助于实现抽象和多重继承。

结论

PHP 语言支持面向对象编程。抽象是 OOP 的支柱。抽象类和接口是实现抽象的两种方法。 PHP 中抽象类和接口的主要区别在于抽象类可以由抽象方法和非抽象方法组成,而接口中的所有方法都没有实现。

参考:

1.“PHP 中的抽象类”。 GeeksforGeeks,2018 年 12 月 11 日,可在此处获取。 2.“PHP中的多重继承”。 GeeksforGeeks,2019 年 2 月 21 日,可在此处获取。

PHP中抽象类和接口的区别是什么