鉴于以下内容:
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
}
}
在这种情况下,最佳做法是什么?
答案 0 :(得分:2)
我想知道是否应该在BaseClass中添加接口方法作为抽象方法
不,没有必要,除非你想在你的抽象类中有具体的实现,否则这样做没有任何好处。扩展抽象类的类必须提供实现以满足接口。