本文介绍了 PHP 中抽象类和接口之间的区别。
在讨论差异之前,首先,我们必须了解抽象类和接口的概念。 以下是抽象类和接口的要点。
PHP 中的抽象类
抽象类由开发者部分实现,至少包含一个抽象方法,一个没有任何代码的方法。 以下是理解抽象类的一些要点。
- 抽象类处于部分抽象之下。
- 我们可以在抽象类中创建变量。
- 抽象类可以包含抽象和非抽象方法。
- 我们可以在抽象类中使用任何访问修饰符。
-
我们可以使用
extends
关键字从派生类访问抽象类功能。 - 在抽象类中,多重继承是可能的。
下面是一个如何创建抽象类的例子。
<?php
abstract class Demo_Abstract_Class {
abstract protected
function Get_Value();
public
function Print_Value() {
print $this -> Get_Value();
}
}
?>
Interface in PHP
接口由 interface 关键字定义,其中所有方法都是抽象的。 以下是了解界面的一些要点。
- 接口处于完全抽象状态。
- 我们不能在界面中创建变量。
- 该接口仅包含抽象方法。
-
接口中仅使用
public
访问修饰符。 -
我们可以使用
implement
关键字从派生类获取接口。 - 接口可以进行多重继承。
这是一个演示接口的例子。
<?php
interface Demo_Interface {
public
function execute();
}
?>
PHP 中的抽象类与接口
这是抽象类和接口之间的区别。
抽象类 | 接口 |
---|---|
没有多重继承。 | 支持多重继承。 |
抽象类包含一个数据成员。 | 接口不包含数据成员。 |
抽象类支持容器。 | 接口不支持容器。 |
抽象类包含完整和不完整的成员。 | 接口仅包含完整的成员,也指成员的签名。 |
抽象类可以具有带有子、属性和函数的访问修饰符。 | 在接口中,一切都被认为是公开的,这就是它没有访问修饰符的原因。 |
抽象类的完整成员可以是静态的,不完整的成员不能是静态的。 | 接口的任何成员都不能是静态的。 |