programas java
MAESTRA: ING. ANA CAROLINA
MELENDEZ GURROLA
JESUS RODRIGUEZ DELGADO
2 ‘B’ L.S.C.A.
10.1 CLASES DERIVADAS
La herencia o relación (es-un) es la relación que existe entre dos clases, en la que una clase
denominada derivada se crea a partir de otra ya existente, denominada clase base. Este
concepto nace de la necesidad de construir una nueva clase y existe unaclase que
representa un concepto más general; en este caso la nueva clase puede heredar de la
clase ya existente. Así por ejemplo, si existe una clase FIGURA y se desea crear una clase
TRIANGULO, esta clase TRIANGULO puede derivarse de FIGURA ya que tendrá en común
con ella un estado y un comportamiento, aunque luego tendrá sus características propias.
TRIANGULO es-un tipo de FIGURA.
EmpleadoFigura
Programador
Triangulo
Figura 10.1 Clases derivadas
Evidentemente, la clase base y la clase derivada tienen código y datos comunes, de modo
que si crea la clase derivada de modo independiente se duplicaría mucho de lo que ya se
ha escrito para la clase base. Java soporta el mecanismo de extensión (extend), que
permite crear clases que son extensión de otra clase, de modo quela nueva clase hereda
todos los métodos que pertenecen ala clase ya existente.
La declaración de derivación de clases debe incluir la palabra reservada extends y a
continuación el nombre de la base que se deriva. La primera línea de cada declaración
debe incluir el formato siguiente:
Class nombre_class extends nombre_clase_base
EJEMPLO 10.1 Declaración de las clases programador y triangulo.Class programador extends Empleado
{
public miembro publico //miembros públicos
private miembro privado // miembros privados
}
class Tiangulo extends Figura
{
public // miembros públicos
protected // miembros protegidos
….
}
Una vez que se ha creado la clase derivada, el siguiente paso es añadir los nuevos
miembros que se requieren para cumplir las necesidades específicas de lanueva clase.
Clase derivada
clase base
Class Director extends Empleado
{
Public nuevo método
…
Prívate nuevo miembro
…
}
En la declaración de la clase director solo se especifican los miembros nuevos (métodos y
datos). Todos los métodos miembros y los miembros dato de la clase Empleado (no
privados) son heredados automáticamente por la clase Director. Por ejemplo, el métodocalcular_salario () de Empleado se aplica automáticamente a los directores:
Director d= new Director ();
d.calcular_salario (325000);
EJEMPLO 10.2 Considérese una clase préstamo y tres clases derivadas de ella: PagoFijo,
PagoVariable, e Hipoteca.
Préstamo
PagoFijo
Hipoteca
PagoVariable
abstract class préstamo
{
final int MAXTERM = 22 ;
protected float capital;
protected floattasaInteres;
public void prestamo (float p, float r) , …- ;
abstract public int crearTablaPagos (float mat [][] ) ;
}
Las variables capitales y tasa interés no se repiten en la clase derivada.
Class PagoFijo extends Préstamo
{
private float pago; // cantidad mensual a pagar por cliente
Public pago_fijo (float x, float v float t) ,…};
Public int crearTablaPagos (float mat *+*+ ) ,…-;
}
classHipoteca numRecibos;
private int recibosPorAnyo;
private float pago;
public Hipoteca (int a, int g, float x, float p, float r) ,…- ;
public int crearTablaPagos (float mat [][]) ,…- ;
}
10.1.1 DECLARACION DE UNA CLASE DERIVADA
La sintaxis para la declaración de una clase derivada:
Nombre de la clase derivada
Palabra reservada para indicar derivación
Nombre de la clase base
classClaseDerivada extends ClaseBase
{
// miembros específicos de la clase derivada
}
La clase base ( ClaseBase) es el nombre de la clase de la que se deriva la nueva clase. Los
miembros private de la clase base son los únicos que no hereda la clase derivada, no se
puede acceder a ellos desde métodos de la clase derivada. Los miembros con visibilidad
public, protected o la visibilidad por...
Regístrate para leer el documento completo.