В каждом примере, который я видел, расширенные классы реализуют интерфейсы своих родителей. Для справки, следующий пример:
interface MyInterface{
public function foo();
public function bar();
}
abstract class MyAbstract implements MyInterface{
public function foo(){ /* stuff */ }
public function bar(){ /* stuff */ }
}
// what i usually see
class MyClass extends MyAbstract implements MyInterface{}
// what i'm curious about
class MyOtherClass extends MyAbstract{}
Не удается ли реализовать интерфейс в дочернем модуле, который реализуется родителем, считается плохой практикой или чем-то еще? Существуют ли какие-либо технические недостатки для отказа от реализации в ребенке?