Cómo configurar android studio y super palabra clave del java
Se puede heredar una gran cantidad de sus padres. Quizás no sea la capacidad de codificar su aplicación para Android con Java, pero eso es otra discusión. Una cosa que no se puede heredar es sus experiencias de haber nacido. Sí, se puede ver las imágenes que tuvieron sus abuelos. Pero eso no es lo mismo que haber estado allí.
En este punto, se puede sentir como quibbling. ¿Qué significaría para “heredar” experiencias del nacimiento de sus padres? Así, puede dejar allí mismo. Esto no es un esfuerzo para formar una metáfora perfecta. Sólo ayuda para introducir un hecho importante acerca de la programación Java - el hecho de que las clases no heredan los constructores de sus clases padre.
Echa un vistazo a este código: ¿Qué es un empleado?
com.allyourcode.company- paquete
Empleado {public class
Public String nombre-
Public String jobTitle-
empleado público() {
}
Empleado público (String nombre, cadena jobTitle) {
this.name = Nombre
this.jobTitle = jobTitle-
}
Cadena getPayString pública () {
Nombre regresar + ", Pay no se conoce n"-
}
}
Ahora examine este código: Empleados de Tiempo Completo tienen salarios
com.allyourcode.company- paquete
importación java.text.NumberFormat-
importación java.util.Locale-
FullTimeEmployee clase pública se extiende Empleado {
SALARIO doble pública
moneda NumberFormat estática = NumberFormat.getCurrencyInstance (Locale.US) -
FullTimeEmployee pública () {
}
FullTimeEmployee pública (String nombre, cadena jobTitle, salario doble) {
this.name = Nombre
this.jobTitle = jobTitle-
this.salary = SALARIO
}
pagar el doble pública () {
volver SALARIO
}
@Anular
Cadena getPayString pública () {
Nombre regresar + ", " + Currency.format (de pago ()) + "norte"-
}
}
Mira las constructoras.
los Empleado a tiempo completo
clase extiende la Empleado
clase.
Ambas clases tienen constructores sin parámetros.
Ambas clases tienen constructores que inicializan todos sus campos.
De hecho, una Empleado a tiempo completo
constructor inicializa tres campos. Sólo uno de estos campos - la salario
campo - se declara en el Empleado a tiempo completo
código de clase. los Empleado a tiempo completo
clase hereda los otros dos campos - nombre
y título profesional
- desde el Empleado
clase. Esto no es una cuestión de Empleado a tiempo completo
anulando constructores de su clase padre. No hay constructores para anular. Al igual que cualquier otra subclase, la Empleado a tiempo completo
clase no hereda los constructores de la clase padre.
¿Hay alguna manera de evitar la redundancia repugnante de todas las declaraciones del constructor? Ahi esta. Java súper
palabra clave puede referirse al constructor de una clase padre:
FullTimeEmployee pública (String nombre, cadena jobTitle, salario doble) {
super (nombre, jobTitle) -
this.salary = SALARIO
}
En este código, el Empleado a tiempo completo
constructor llama al constructor de la clase padre. La llamada a súper
y tiene dos parámetros, como la suerte lo tendría, el padre Empleado
clase tiene un constructor de dos parámetros:
Empleado público (String nombre, cadena jobTitle) {
this.name = Nombre
this.jobTitle = jobTitle-
}
los súper
llamada envía dos parámetros al constructor de la clase padre, y el constructor de la clase padre utiliza esos dos parámetros para dar nombre
y título profesional
sus valores iniciales. Finalmente, el Empleado a tiempo completo
clase asigna un valor a su propia salario
campo. Todo funciona muy bien.