Является ли переопределение конкретных методов запахом кода?

Правда ли, что переопределение конкретных методов - это запах кода? Потому что я думаю, что если вам нужно переопределить конкретные методы: public class A{ public void a(){ } } public class B extends A{ @Override public void a(){ } } это можно переписать как public interface A{ public void a(); }...