Encontré un problema de herencia / anulación interesante (tomado de here ).
Cuando las clases Base y Derivada son abstractas, y
No entiendo por qué Eclipse IDE lo llama en Derivado
Fragmento 1:
public abstract class Girl { abstract String getDescription(); } abstract class GirlDecorator extends Girl { abstract String getDescription(); // implements Girl.getDescription() - says Eclipse IDE }Fragmento 2:
public abstract class Girl { String description = "no particular"; String getDescription() { return description; } } abstract class GirlDecorator extends Girl { abstract String getDescription(); // overrides Girl.getDescription() - says Eclipse IDE }En Java hay dos tipos de métodos (no estáticos)
Virtual: método normal, debe implementarse en la clase base, pero puede anularse por herencia.
Abstract - Método que no está implementado en la clase base sino en la clase derivada.
Entonces eso lo envuelve, los métodos virtuales no se implementan en la clase derivada, se implementan en la clase base y pueden ser anulados por la clase derivada. Los métodos abstractos no se implementan en la clase base, se implementan en la clase derivada .