Tengo una pregunta relacionada con las clases internas de Java.clase interna de Java con el mismo nombre que otra clase de nivel superior
¿Hay alguna manera de acceder a la clase de nivel superior A desde la clase de nivel superior Principal que define la clase interna A?
A continuación se muestra el código de ejemplo que muestra el problema:
class A { // Outer Class A
{
System.out.println("A outer");
}
}
class B { // Outer Class B
{
System.out.println("B outer");
}
}
public class Main {
class A { // Inner Class A
{
System.out.println("A inner");
}
}
public void newA() {
class A { // Local Class A
{
System.out.println("A local");
}
}
new A();
}
public static void main(String[] args) {
new Main().newA(); // prints "A local"
new Main().new A(); // prints "A inner"
//new A(); // compiler error: No enclosing instance of type Main is Accessible.
new B(); // but this works and prints "B outer"
}
}
Trate de no volver a utilizar los nombres de clase, incluso entre los paquetes. Es probable que conduzca a la confusión. –