Interfaces y herencia de clases abstractas, implementación en clases extendidas

En todos los ejemplos que he visto, las clases extendidas implementan las interfaces de sus padres. Como referencia, el siguiente ejemplo:

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{}

Es una falla al implementar una interfaz en un niño, que se implementa por un padre,considerado una mala práctica o algo así? ¿Existe algún inconveniente técnico en omitir la implementación en el niño?

34
задан Dan Lugg 16 June 2011 в 08:36
поделиться