【问题标题】:What are the advantages of interfaces and abstract classes? [duplicate]接口和抽象类的优点是什么? [复制]
【发布时间】:2011-06-04 04:08:41
【问题描述】:

可能的重复:
purpose of interface in classes
What is the difference between an interface and abstract class?

您好,我是一名 php 程序员。任何人都可以解释使用接口和抽象类有什么好处。

【问题讨论】:

标签: php oop interface abstract-class


【解决方案1】:

接口的主要优点是它允许您定义要实现的协议以使对象具有某些行为。例如,您可以有一个 Comparable 接口,其中包含要实现的类的比较方法,并且实现它的每个类都有一个标准化的比较方法。

抽象类允许您为多个具体类定义一个公共基础。例如,假设您想定义代表动物的类:

abstract class Animal {
    abstract protected function eat();
    abstract protected function sleep();
    public function die() {
        // Do something to indicate dying
    }
}

在这种情况下,我们将eat()sleep() 定义为抽象的,因为从Animal 继承的不同类型的动物(例如狮子、熊等)以不同的方式吃和睡。但是所有动物都以同样的方式死去(不要让我这么认为),所以我们可以为此定义一个通用函数。使用抽象类帮助我们 1.) 声明所有 Animals 应该具有的一些通用方法,以及 2.) 为 Animals 定义通用行为。因此,当您扩展Animal 时,您不必为die() 重写代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-02
    • 2010-11-13
    • 2013-02-17
    • 1970-01-01
    • 2012-08-04
    • 2011-10-10
    相关资源
    最近更新 更多