繁体   English   中英

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

[英]Should I create abstract methods when my abstract class implements an interface?

鉴于以下情况:

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
    }

}

在这种情况下,最佳实践是什么?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM