<分区>
Possible Duplicates:
purpose of interface in classes
What is the difference between an interface and abstract class?
大家好,我是一名 PHP 程序员。任何人都可以解释使用接口(interface)和抽象类的优势是什么。
<分区>
Possible Duplicates:
purpose of interface in classes
What is the difference between an interface and abstract class?
大家好,我是一名 PHP 程序员。任何人都可以解释使用接口(interface)和抽象类的优势是什么。
最佳答案
接口(interface)的主要优点是它允许您定义要为具有某些行为的对象实现的协议(protocol)。例如,您可以有一个带有比较方法的 Comparable 接口(interface)供类实现,每个实现它的类都会有一个标准化的比较方法。
抽象类允许您为多个具体类定义一个公共(public)基础。例如,假设您想定义代表动物的类:
abstract class Animal {
abstract protected function eat();
abstract protected function sleep();
public function die() {
// Do something to indicate dying
}
}
在这种情况下,我们将 eat()
和 sleep()
定义为抽象的,因为不同类型的动物(例如狮子、熊等)将继承自动物
以不同的方式进食和 sleep 。但是所有的动物都以同样的方式死去(别逼我这么说),所以我们可以为此定义一个通用函数。使用抽象类帮助我们 1.) 声明所有 Animal
应该具有的一些通用方法,以及 2.) 为 Animal
定义通用行为。因此,当您扩展 Animal
时,您不必为 die()
重写代码。
关于php - 接口(interface)和抽象类的优点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4607081/