principios contables
N
CCIÓ
RODU
– INT ENTADA A
3
I
ULO
PIT
N OR
CA
ACIÓ
GRAM
PRO
S
JETO
OB
Lenguajes de
programación
II
HERENCIA DE CLASES
HERENCIA
●
La herencia es un mecanismo que permite modelar relaciones jerárquicas entre
elementos, del tipo is-a (es un (a)), como por ejemplo la relación que existe entre
un mamífero y un perro. En la que un perro es un mamífero. En estarelación, el
perro como heredero tiene las características del mamífero y aquellas que lo
distinguen del resto de los mamíferos.
HERENCIA
Sintácticamente la nueva clase extiende a la clase original, por lo que se
hace uso de la cláusula extends, de la forma class .
NombreHija extends NombreMadre {
// Cuerpo de la clase
}
HERENCIA
En esencia podemos decir que herencia es:
●
●●
●
Un mecanismo para reutilizar software
La extensión de clases existentes, de las que se heredan los atributos y el
comportamiento.
Java sólo tiene herencia simple. Esto es, una clase sólo puede heredar de
una clase.
Además, si una clase no hereda de alguna otra clase, Java
automáticamente hace que herede de la clase Object.
ENTONCES….
●
●
●
Herencia es la capacidadde recibir todos los métodos y variables de una o más
clases para realizar ciertas tareas. Por lo general, las subclases agregan métodos y
modifican algunos métodos para realizar tareas diferentes.
La herencia permite que se pueden definir nuevas clases basadas en clases
existentes, lo cual facilita el re-utilizar código previamente desarrollado. Si una
clase deriva de otra (extends) heredatodas sus variables y métodos.
Por ejemplo, una clase "auto" podría heredar de otra más general, "vehículo", y
simplemente redefinir los métodos para el caso particular de los automóviles… lo
que significa que, con una buena biblioteca de clases, se puede reutilizar mucho
código inclusive sin saber lo que tiene adentro.
PROGRAMACIÓN DE HERENCIAS
●
Para que la jerarquía de herenciatenga sentido, la clase hija debe tener
la facultad de hacer lo mismo que la madre. Esto es lo que realmente
certifica la prueba "es un" . La hija sólo tiene permitido aumentar y
agregar funcionalidad, pero nunca se le permite eliminarla.
●
Ejemplo: Considere una clase Persona en la que se determinan
propiedades básicas comunes para todas las personas de la comunidad
tecnológica(Empleado, Alumno, ExAlumno). Entre otras propiedades
pueden definirse el nombre y la fecha de nacimiento.
import java.util.Date;
import java.util.GregorianCalendar;
public class Persona {
GregorianCalendar calendario = new GregorianCalendar();
public String nombre;
public Date nacio;
public Persona(int year, int mes, int dia) {
calendario.set( year, mes, dia );
nacio =calendario.getTime();
}
Partiendo de la clase base Persona, podemos especializar un Alumno
import java.util.Date;
import java.util.GregorianCalendar;
public class Alumno extends Persona {
GregorianCalendar calendario = new GregorianCalendar();
public String numero_control;
public String especialidad;
public int semestre;
public Date fecha_ingreso;
public Alumno(String Nombre, int year, int mes, int dia){
//construye la parte heredada de persona
super(year, mes, dia);
numero_control=“9”;
especialidad = “15”;
semestre = 7;
int i_year= 2013;
int i_mes = 04;
int i_dia = 19;
calendario.set( i_year, i_mes, i_dia );
fecha_ingreso = calendario.getTime();
}
public void muestraAlumno() {
System.out.println("Alumno: " + nombre);
System.out.println("Fecha nacimiento: " + nacio);System.out.println("Número de control:" + numero_control);
System.out.println("Especialidad: " + especialidad);
System.out.println("Semestre que cursa: " + semestre);
System.out.println("Fecha de ingreso: " + fecha_ingreso);
System.out.println();
}
}
import java.util.GregorianCalendar;
public class Prueba_Alumno {
public static void main(String[] args) {
Alumno miAlumno = new Alumno("Juan...
Regístrate para leer el documento completo.