De programación java: la creación de una subclase

Video: Java Tutorial 23 - Crear un objetos en java

Cuando se escribe un programa orientado a objetos en Java, se empieza por pensar en los datos. Usted está escribiendo acerca de las cuentas. Entonces, ¿qué es una cuenta? Usted está escribiendo código para manejar pulsaciones de botón. Entonces, ¿qué es un botón? Usted está escribiendo un programa para enviar los cheques de nómina a los empleados. ¿Qué es un empleado?

En este ejemplo, un empleado es alguien con un nombre y un puesto de trabajo. Sin duda, los empleados tienen otras características, pero por ahora se adhieren a los conceptos básicos. El código en este listado define lo que significa ser un empleado.

Empleado de importación estática clase java.lang.System.out pública {void private String nombre-privada setName cadena jobTitle-pública (String nameIn) {name = nameIn-} public String getName () {return} nombre- setJobTitle public void (String jobTitleIn) {jobTitle = jobTitleIn-} public String getJobTitle () {return jobTitle-} public void cutCheck (doble AmountPaid) {out.printf ("Pagar a la orden de% s ", Nombre) -out.printf ("(% S) *** $", JobTitle) -out.printf ("% ,. 2FN", cantidad pagada)-}}

En el perfil, una Empleado clase se define. Puede utilizar lo que se define aquí y ampliar la definición para crear nuevas clases, más especializados. Así que en esta próxima perfil, se define una nueva clase - una Empleado a tiempo completo clase.

FullTimeEmployee clase pública Empleado se extiende {Private doble weeklySalary-privada doble setWeeklySalary benefitDeduction-public void (doble weeklySalaryIn) {} weeklySalary = weeklySalaryIn- pública getWeeklySalary doble () {return} weeklySalary- setBenefitDeduction public void (doble benefitDedIn) {} benefitDeduction = benefitDedIn- doble getBenefitDeduction pública () {return} benefitDeduction- findPaymentAmount doble pública () {return weeklySalary - benefitDeduction-}}

Mirando el perfil, se puede ver que cada instancia de la Empleado a tiempo completo clase tiene dos campos: weeklySalary y benefitDeduction. Pero esos son los únicos campos que cada Empleado a tiempo completo instancia tiene? No, no lo son.

Video: Creación de clases en Java. © UPV

La primera línea dice que el Empleado a tiempo completo clase extiende el vigente Empleado clase. Esto significa que además de tener una weeklySalary y una benefitDeduction, cada Empleado a tiempo completo instancia también tiene otros dos campos: nombre y título profesional. Estos dos campos provienen de la definición de la Empleado clase, que se puede encontrar en el primer listado.

En el segundo perfil, la palabra mágica es se extiende. Cuando una clase se extiende una clase existente, la clase que se extiende hereda automáticamente la funcionalidad que está definido en la clase existente. Entonces el Empleado a tiempo completo clase hereda el nombre y título profesional campos.

Video: Tutorial Java - Como Manejar y crear archivos en Java

los Empleado a tiempo completo clase también hereda todos los métodos que se declaran en el Empleado clase - escoger un nombre, getNombre, setJobTitle, getJobTitle, y cutCheck. los Empleado a tiempo completo clase es una subclase del Empleado clase.

Eso significa que el Empleado es la clase superclase del Empleado a tiempo completo clase. También se puede hablar en términos de los parientes de sangre. los Empleado a tiempo completo es la clase niño del Empleado clase, y el Empleado es la clase padre del Empleado a tiempo completo clase.

Video: Instanciar una Clase en Java

Es casi (pero no del todo) como si el Empleado a tiempo completo la clase se define por el código en este listado. Este código es falso, pero informativo.

FullTimeEmployee importación estática clase java.lang.System.out pública {private String nombre-privada Cadena jobTitle-privada doble weeklySalary-privada doble setName benefitDeduction-public void (String nameIn) {name = nameIn-} public String getName () {return nombre-} public void setJobTitle (String jobTitleIn) {jobTitle = jobTitleIn-} public String getJobTitle () {return jobTitle-} public void setWeeklySalary (doble weeklySalaryIn) {} weeklySalary = weeklySalaryIn- pública getWeeklySalary doble () {return} weeklySalary- pública setBenefitDeduction vacío (doble benefitDedIn) {} benefitDeduction = benefitDedIn- getBenefitDeduction doble pública () {return} benefitDeduction- doble findPaymentAmount pública () {return weeklySalary - benefitDeduction-} public void cutCheck (doble AmountPaid) {out.printf ("Pagar a la orden de% s ", Nombre) -out.printf ("(% S) *** $", JobTitle) -out.printf ("% ,. 2FN", cantidad pagada)-}}

¿Por qué este listado de código falso? Bueno, la principal diferencia entre este anuncio y la situación herencia en los listados anteriores es la siguiente: Una clase niño no puede hacer referencia directamente a los campos privados de su clase padre. Para hacer cualquier cosa con los campos privados de la clase padre, la clase niño tiene que llamar a métodos de acceso de la clase padre.

De vuelta en el segundo perfil, llamando setName ( “Rufus”) sería legal, pero el código name =”Rufus” No sería. Si usted cree todo lo que lee en el último perfil, se podría pensar que en el código de Empleado a tiempo completo clase puede hacer name =”Rufus”. Bueno, no se puede.

No es necesario el Employee.java presentar en su disco duro para escribir código que se extiende la Empleado clase. Todo lo que necesita es el archivo Employee.class.

Artículos Relacionados