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