2012-09-13 11 views
13

yo estaba buscando en Google para algo y me dieron un código como¿Podemos crear clases abstractas estáticas públicas en java?

public static abstract class LocationResult{ 
    public abstract void gotLocation(Location location); 
} 

Es una clase anidada, pero preguntaba cómo podría ser accesible?

+0

Puede consultarlo aquí http://stackoverflow.com/questions/4579305/can-we-instantiate-abstract-class –

Respuesta

16

Debe ser una clase anidada: la palabra clave estática en la clase (no en sus métodos) solo se usa (y es sintácticamente válida) para las clases anidadas. Dichas clases de miembro estáticas (para usar Java en una nomencultura común de Nutshell) no hacen referencia a la clase adjunta y, por lo tanto, solo pueden acceder a campos y métodos estáticos (a diferencia de las no estáticas, consulte cualquier resumen de clases anidadas en Java (también conocido como las clases internas)

puede ser accesibles de esta manera:..

public class EnclosingClass { 
    public static abstract class LocationResult{ 
    public abstract void gotLocation(Location location); 
    } 
} 

EnclosingClass.LocationResult locationResult = ... 
+2

O podría extenderse por otras clases anidadas. – assylias

+0

como novato, aprendo que no podemos crear una instancia de una clase abstracta. ¿Hay alguna documentación de material para aprender esto? –

+0

@YasirKhan Puedes en la forma de una clase anónima. – assylias

3

Sólo las clases anidadas pueden ser estáticos de esta manera se puede utilizar la clase anidada sin tener una instancia de la clase externa

Así que podría crear una clase extendiéndola usando extends Mainclass.LocationResult y úselo con Mainclass.LocationResult instance = ...

Cuestiones relacionadas