Estoy confundido por qué esto está permitidoLa subclasificación clase interna de la clase externa versus otra clase interna
public class Foo {
class Bar extends Foo {
}
}
Sin embargo, esto no está permitido
public class Foo {
class Bar extends Foo {
}
class Fooey extends Bar {
}
}
El compilador informó de que no puede hacer referencia a Fooey.this antes de que se haya llamado al constructor de supertipo.
Y esto está permitido
public class Foo {
static class Bar extends Foo {
}
class Fooey extends Bar {
}
}
¿Qué está pasando aquí? ¿Y a dónde puedo ir para obtener más información sobre cómo funciona la herencia de la clase interna?
EDIT Me encontré con ideas bastante pobres; la clase interna se extiende a la clase externa y la clase interna se extiende a otra clase interna estática. No estaba seguro de qué iba exactamente y cómo debería refactorizar esto. Terminé tirando de las clases internas y encapsulándolas en la clase externa.
Echa un vistazo a esta pregunta, bastante seguro de que esto lo duplica: http://stackoverflow.com/questions/70324/java-inner-class-and-static-nested-class –
No es una tontería (al menos no de esa) –
¿De qué sirve tener una instancia externa de una clase que estás ampliando? – Jorn