Componentes y pilares de la Programación Orientada a Objetos
Dentro de la POO existen cuatro
pilares los cuales son: abstracción, encapsulamiento, herencia y polimorfismo.
En este caso hablaremos de los dos últimos.
HERENCIA:
Es una de las maneras de
compartir código, toda vez que se establece una relación entre dos clases: las
clases base y la clase derivada, la primera es el principio de todo y la
segunda obtiene características y propiedades de esta de manera heredada,
incluso puede sustituir la funcionalidad de la clase base.
Para hacerlo más claro puedo
ejemplificar así: Hay una clase karate, Karate es un tipo de deporte, además
queremos procesar otro tipo de deportes, cada uno con su rama, como
arte_marcial. Karate y arte_marcial, comparten el concepto de contacto, además
ambos tienen la capacidad de lucha, y la capacidad de generar daño, sin embargo,
cuando en un arte_marcial se produce un daño, este debe tener una alerta.
Finalmente, un deporte debe poder enseñar algo. ejemplo modelado:
public class deporte
{
public string Rama;
public int contacto { get; private set; }
public void lucha()
{
contacto += 10;
}
public virtual void daño()
{
Console.WriteLine("Deporte de Contacto,
Alerta!");
}
}
public class Karate: arte_marcial
public void Enseña_algo()
{
Console.WriteLine("El arte marcial es un
estilo de vida");
}
}
public class Karate: arte_marcial
{
public override void alerta()
{
base.alerta();
Console.WriteLine("Puede Producirse daño de
no practicarse adecuadamente!");
}
}
Vemos que tenemos tres clases deporte, karate y arte_marcial,
POLIMORFISMO:
Polimorfismo significa de muchas formas. En nuestro caso llamamos polimorfismo cuando un método recibe un parámetro que abarca varios tipos.
Veamos un ejemplo de polimorfismo donde pasamos a un método la clase base arte_marcial:
static void Enseñar(Arte_marcial arte_marcial)
{
Console.WriteLine("Inicia clases");
Console.WriteLine("Defensa personal");
Console.WriteLine($"inicia clases {arte_marcial}");
vehículo.iniciar();
Console.WriteLine($"inicia clases {}");
Console.WriteLine("Reducir posibles daños por malas prácticas");
vehículo.alerta();
Console.WriteLine("Listo!");
}
Comentarios
Publicar un comentario