Beruflich Dokumente
Kultur Dokumente
HERENCIA
La herencia sirve para crear objetos que
incorporen propiedades y mtodos de otros
objetos. As podremos construir unos objetos
a partir de otros sin tener que reescribirlo
todo.
CLASE ABSTRACTA
Este Tipo de Clases nos permiten crear mtodo
generales, que recrean un comportamiento comn,
pero sin especificar cmo lo hacen. A nivel de cdigo
tienen por particularidad que algunos de sus mtodos
no tienen cuerpo de declaracin, qu quiere decir
esto? no tienen las llaves { } ni cdigo dentro de ellos y
deben estar precedidos por la palabra clave abstract.
Si una clase contiene uno o ms mtodos abstractos
est clase debe ser abstracta. Estas clases como son
generalidades no pueden ser instanciadas por ningn
objeto (se dice que su nivel de abstraccin es
demasiado alto), entonces su nico fin es ser
heredado/extendido por otras clases.
CLASE FIGURA
//se agrega la palabra reservada abstract
//para indicar que la clase es abstracta (genrica)
}
FORMULARIO HERENCIA FIGURA
CLASE CIRCULO
//HEREDA DE LA CLASE FIGURA
public class clsCirculo:clsFigura
{
//Atributos
private double _Radio;
//Constructor
public clsCirculo(double radio)
{
_Radio = radio;
}
CLASE CIRCULO
//sobreescribir los metodos abstractos
//de la clase que hereda
}
CLASE CUADRADO
//HEREDA DE LA CLASE FIGURA
public class clsCuadrado:clsFigura
{
//atributo
private double _Lado;
//constructor
public clsCuadrado(double lado)
{
_Lado = lado;
}
CLASE CUADRADO
//implementa los metodos abstractos de la clase que esta heredand
public override string Dibujar()
{
return "DIBUJANDO CUADRADO...\n";
}
public override double Area()
{
return _Lado * _Lado;
}
}
DIAGRAMA DE HERENCIA - ABSTRACTA
EJEMPLO HERENCIA EMPLEADOS
Objetos Utilizados
Formulario.
Label = Datos Empleados
richTexbox richEmpleado
Button btnEjecutar
CLASE EMPLEADOS (abstracta)
//se agrega la palabra reservada abstract
public abstract class clsEmpleados
{
//declaracion de atributos de la clase
private String _Cedula;
private String _Nombres;
private String _Apellidos;
CLASE EMPLEADOS (abstracta)
//Propiedades
public string Cedula
{
get { return _Cedula; }
set { _Cedula = value; }
}
//metodo abstracto que se tiene que implementar en todas las clases que hereden
public abstract double Ingresos();
//propiedades
public double Salario
{
get { return _Salario; }
set { _Salario = value; }
}
//METODOS
CLASE EMPLEADO ASALARIADO
//constructor
public clsEmpleadoAsalariado(string cedula, string nombres,
string apellidos, double salario):base(cedula,nombres,apellidos)
{
_Salario = salario;
}
}
CLASE EMPLEADO POR HORAS
public class clsEmpleadoPorHoras:clsEmpleados
{
//Atributos de la clase
private double _NumeroHoras;
private double _ValorHora;
//Propiedades
public double NumeroHoras
{
get { return _NumeroHoras; }
set { _NumeroHoras = value; }
}
}
CLASE EMPLEADO POR COMISION
public class clsEmpleadoPorComision:clsEmpleados
{
//atributos de la clase
private double _TarifaComision;
private double _VentasBrutas;
//propiedades
public double TarifaComision
{
get { return _TarifaComision; }
set { _TarifaComision = value; }
}
//Propiedad
public double Salario
{
get { return _Salario; }
set { _Salario = value; }
}
EMPLEADO BASE MAS COMISION
//METODOS
//Constructor
public clsEmpleadoBaseMasComision(string cedula, string
nombres,
string apellidos, double tarifacomision, double ventasbrutas,
double salario)
: base(cedula, nombres, apellidos, tarifacomision, ventasbrutas)
{
_Salario = salario;
}
/*richEmpleados.AppendText(eAsalariado.ToString());
richEmpleados.AppendText(ePorHoras.ToString());
richEmpleados.AppendText(ePorComision.ToString());
richEmpleados.AppendText(eBaseMasComision.ToString()
);*/
CODIGO BOTON EJECUTAR
//crear arreglo de tipo clsEmpleado
clsEmpleados[] empleados = new clsEmpleados[4];
//llena el arreglo
empleados[0] = eAsalariado;
empleados[1] = ePorHoras;
empleados[2] = ePorComision;
empleados[3] = eBaseMasComision;