2011-05-25 28 views
18

¿Qué hace el supermétodo?¿Qué hace el método super()?

public DataFetch(Context context) { 
    super(); 
    this.ctx = context; 
} 

¿Este constructor hace que el contexto del objeto recién creado sea el contexto de la superclase? No estoy 100% seguro de cómo funciona esto. Entonces, ¿el método super() básicamente sería simplemente decir "ponerme en el modo súper clase" para decirlo en términos sencillos?

+1

NB no es un "método", es una forma de referirse a un constructor en la clase base. – EJP

Respuesta

32

Dice "inicializar mi clase principal antes de inicializarme" llamando a su constructor predeterminado.

+0

¿eso significa esencialmente que el contexto del nuevo objeto es el contexto de la superclase en este caso? – mergesort

+1

No, la superclase no tiene referencias directas a ninguna variable definida en su clase. Tendría que llamar a un constructor que tenga un argumento Contextual. – dmon

9

super() llama al constructor de clases principal (todo el camino de regreso a Object) y se ejecuta antes del constructor de la clase actual.

2

No existe el "contexto de superclase", el contexto es una interfaz para acceder a la información del entorno de la aplicación, como recursos de imágenes, servicios de sistema, etc. El contexto será de lo que sea que pase y es independiente de la clase. Por ejemplo, un Activity es la implementación de la interfaz Contexto que probablemente utilizará y cualquier vista que realice desde esa actividad tendrá el mismo Contexto que es en realidad el que proporciona la actividad.

0

Cuando se utiliza en un constructor, la palabra clave super() aparece sola y debe utilizarse antes de que se pueda utilizar la palabra clave this. La palabra clave this se puede usar para llamar funciones en un objeto primario.

Cuestiones relacionadas