Esto es más de un rompecabezas que la pregunta. Tengo el siguiente código:alcance del constructor privado en la clase jerarquizada
public class PrivateBaseConstructor {
public static class BaseClass {
private BaseClass() {
}
}
public static class DerivedClass extends BaseClass {
public DerivedClass() {
super(); // 1*
}
}
}
Aquí el llamado a super();
a 1 * se encuentra habilitado el caso de que el constructor de la clase base es private
. Si escribimos las clases como clases separadas en un mismo envase:
BClass.java
public class BClass {
private BClass() {
}
}
DClass.java
public class DClass extends BClass {
public DClass() {
super(); // 2*
}
El compilador da razón de error al 2 * desde el constructor de la clase base no es visible.
¿Por qué el compilador no emite un error en mi primer escenario cuando ambas clases se declaran estáticas dentro de una clase?
+1 para referencia exacta! – Anshu