// Conclusión: Se concluye que se debe tener cuidado al sobreescribir un // método que es usado por la superclase para inicializar su estado, ya // que si es sobreescrito, el método que será invocado será el de la // subclase y no el de la superclase, y dejará a la superclase con un estado // inconsistente. La recomendación es ver bien que si no se quiere correr ese // riesgo, el que sobreescriba adopte la buena costumbre de no romper el // contrato y llamar a super.metodoSobreescrito() para que se cumpla el // contrato de la superclase, o bien, el que inicializa preocuparse de // usar métodos private, final o estatic, o de lo contrario se debe indicar // sobre ese riesgo. public static void main(String[] args) { Sub sub = new Sub(); System.out.println("campoSuper: " + sub.getCampoSuper()); System.out.println("campoSub: " + sub.getCampoSub()); }