我的抽象类实现接口时应该创建抽象方法吗?

时间:2016-04-20 21:34:22

标签: php class oop interface abstract-class

鉴于以下内容:

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
    }

}

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

1 个答案:

答案 0 :(得分:2)

  

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

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