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

Entradas populares de este blog