【问题标题】:Should I create abstract methods when my abstract class implements an interface?当我的抽象类实现接口时,我应该创建抽象方法吗?
【发布时间】:2016-08-13 19:54:50
【问题描述】:

鉴于以下情况:

interface SomeInterface {

    public function foo();
    public function bar();

}

abstract class BaseClass implements SomeInterface {

    public function baz() {
        echo 'baz'; // Shared logic
    }

}

class ConcreteClass extends BaseClass {

    public function foo() {
        // foo logic...
    }

    public function bar() {
         // bar logic...
    }

{

这是按原样工作的,但是,我想知道是否应该像这样在BaseClass 中添加接口方法作为抽象方法:

abstract class BaseClass implements SomeInterface {

    abstract public function foo();

    abstract public function bar();

    public function baz() {
        echo 'baz'; // Shared logic
    }

}

在这种情况下,最佳做法是什么?

【问题讨论】:

  • 不需要抽象声明,因为任何扩展类都需要实现接口的方法。

标签: php class oop interface abstract-class


【解决方案1】:

我想知道是否应该将接口方法作为抽象方法添加到 BaseClass 中

不,没有必要这样做,除非您想在抽象类中实现具体实现,否则这样做没有任何好处。扩展抽象类的类必须提供实现以满足接口。

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2013-05-30
    • 2011-11-20
    • 1970-01-01
    • 2012-07-17
    • 2011-04-17
    相关资源
    最近更新 更多