Overriding a parent class' method implementation with an ``++abstract++`` method is a terrible practice for a number of reasons: * it blocks invocation of the original class' method by children of the ``++abstract++`` class. * it requires the ``++abstract++`` class' children to re-implement (copy/paste?) the original class' logic. * it violates the inherited contract. == Noncompliant Code Example [source,java] ---- public class Parent { public int getNumber() { return 1; } } public abstract class AbstractChild { abstract public int getNumber(); // Noncompliant } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] ''' == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]