可能重复:
purpose of interface in classes
What is the difference between an interface and abstract class?
嗨,我是一名php程序员。任何机构都可以解释使用接口和抽象类的优点。
答案 0 :(得分:14)
接口的主要优点是它允许您定义要为对象实现某些行为的协议。例如,您可以使用Comparable接口和要实现的类的比较方法,并且实现它的每个类都有一个标准化的比较方法。
抽象类允许您为几个具体类定义公共基础。例如,假设您想要定义代表动物的类:
abstract class Animal {
abstract protected function eat();
abstract protected function sleep();
public function die() {
// Do something to indicate dying
}
}
在这种情况下,我们将eat()
和sleep()
定义为抽象,因为不同类型的动物(例如狮子,熊等)会从Animal
继承进食和睡眠不同方法。但是所有动物都以同样的方式死亡(不要抱我这样),所以我们可以为此定义一个共同的功能。使用抽象类帮助我们1.)声明所有Animal
s应该具有的一些常用方法,以及2.)定义Animal
的常见行为。因此,当您扩展Animal
时,您不必重写die()
的代码。