Want to create interactive content? It’s easy in Genially!
Herencia y polimorfismo
y.quinterota
Created on March 17, 2021
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
Herencia y polimorfismo
Docente: Yudy Quintero
CARACTERÍSTICAS DE LAS POO
La programación orientada a objetos surge como un problema de clasificación y en este concepto se basa su naturaleza. Por definición: Propuesta de programación que se basa en la creación de objetos y la cooperación entre los mismos. Sus pilares son: Herencia, Abstracción, encapsulamiento, y polimorfismo.
Herencia
Pilares de la POO
Es la creación de nuevas clases partiendo de una jerarquía de clases ya existente. Mecanismo fundamental para implementar la reutilización.
Abstracción y encapsulamiento
Consiste en aislar un objeto (sistema modular). Centrarse más en Que Hace y no Como lo Hace. Ocultamiento de los atributos de un objeto. Sólo es posible cambiarlos mediante las operaciones definidas para ese objeto
Polimorfismo
Capacidad que puede ser implementada en las clases la cual permite utilizar un mismo método de forma diferente
¿QUÉ ES ESO DEL ENCAPSULAMIENTO?
Podríamos definirlo como la capacidad que tienen los objetos de ocultar su código al cliente y proteger sus datos, ofreciendo única y exclusivamente una interfaz que garantiza que el uso del objeto es el adecuado.Según el principio de encapsulamiento, una clase o una estructura pueden especificar hasta qué punto se puede acceder a sus miembros para codificar fuera de la clase o la estructura. No se prevé el uso de los métodos y las variables fuera de la clase, o el ensamblado puede ocultarse para limitar el potencial de los errores de codificación o de los ataques malintencionados.
¿QUE ES LA ABSTRACION ?
Suprimir o esconder algunos detalles de un proceso o artefacto con el propósito de resaltar más claramente otros aspectos, detalles o estructura Ocultar información, o encapsulado, en programación, consiste en omitir detalles de implementación. Permite gestionar la complejidad.
¿QUÉ ES LA HERENCIA?
La herencia es un mecanismo que permite crear clases nuevas que reutilizan, extienden y modifican el comportamiento que se define en otras clases. La clase cuyos miembros se heredan se denomina clase base y la clase que hereda esos miembros se denomina clase derivada.
CLASE DERIVADA
Conceptualmente, una clase derivada es una especialización de la clase base. Por ejemplo, si tiene una clase base Vehiculo, podría tener una clase derivada denominada Coche y otras clases derivadas denominada Moto y Bus. Coche es Vehiculo y Moto también es Vehiculo, pero cada clase derivada representa especializaciones diferentes de la clase base.
CLASE BASE
Vehiculo
Moto
Bus
Coche
CLASES DERIVADAS O CLASES HIJAS
HERENCIA EN C#
La herencia se consigue mediante una derivación, en la que se declara una clase mediante una clase base, desde la que hereda los datos y el comportamiento. A diferencia de C++, una clase de C# solo puede heredar directamente de una clase base. En cambio, dado que una clase base puede heredar de otra clase, una clase podría heredar indirectamente varias clases base. .
HERENCIA EN C#
La herencia es el mecanismo de implementación mediante el cual elementos más específicos incorporan la estructura y comportamiento de elementos más generales (Rumbaugh 99) Gracias a la herencia es posible especializar o extender la funcionalidad de una clase, derivando de ella nuevas clases. La herencia es siempre transitiva: una clase puede heredar características de superclases que se encuentran muchos niveles más arriba en la jerarquía de herencia. Ejemplo: si la clase Perro es una subclase de la clase Mamífero, y la clase Mamífero es una subclase de la clase Animal, entonces el Perro heredará atributos tanto de Mamífero como de Animal
HERENCIA TEST “ES-UN”
La clase A se debe relacionar mediante herencia con la clase B si “A ES-UN B”. Si la frase suena bien, entonces la situación de herencia es la más probable para ese caso :Un pájaro es un animal Un gato es un mamífero Un pastel de manzana es un pastel Una matriz de enteros es un matriz Un coche es un vehículo
Animal
carnivoro
herbivoro
omnivoro
conejo
Leon
hiena
hombre
Clases abstractas
Una clase puede declararse abstracta. Una clase abstracta contiene métodos abstractos que tienen una definición de firma, pero no tienen ninguna implementación. No se pueden crear instancias de las clases abstractas. Sólo se pueden usar a través de las clases derivadas que implementan los métodos abstractos
CLASES Y MIEMBROS DE CLASE ABSTRACTOS
No se pueden crear instancias de una clase abstracta. El propósito de una clase abstracta es proporcionar una definición común de una clase base que múltiples clases derivadas pueden compartir. Por ejemplo, una biblioteca de clases puede definir una clase abstracta que se utiliza como parámetro para muchas de sus funciones y solicitar a los programadores que utilizan esa biblioteca que proporcionen su propia implementación de la clase mediante la creación de una clase derivada. Las clases abstractas también pueden definir métodos abstractos. Esto se consigue agregando la palabra clave abstract antes del tipo de valor que devuelve el método.
CLASES Y MIEMBROS DE CLASE ABSTRACTOS
Los métodos abstractos no tienen ninguna implementación, de modo que la definición de método va seguida por un punto y coma en lugar de un bloque de método normal. Las clases derivadas de la clase abstracta deben implementar todos los métodos abstractos. Cuando una clase abstracta hereda un método virtual de una clase base, la clase abstracta puede reemplazar el método virtual con un método abstracto.
Clases y miembros sellados
Las clases se pueden declarar como selladas si se incluye la palabra clave sealed antes de la definición de clase.
Una clase sellada no se puede utilizar como clase base. Por esta razón, tampoco puede ser una clase abstracta. Las clases selladas evitan la derivación. Puesto que nunca se pueden utilizar como clase base, algunas optimizaciones en tiempo de ejecución pueden hacer que sea un poco más rápido llamar a miembros de clase sellada.
Clases y miembros sellado
Un miembro de clase, método, campo, propiedad o evento de una clase derivada que reemplaza a un miembro virtual de la clase base puede declarar ese miembro como sellado. Esto niega el aspecto virtual del miembro para cualquier clase derivada adicional. Esto se logra colocando la palabra clave sealed antes de la palabra clave override en la declaración del miembro de clase.
Polimorfismo
A través de la herencia, una clase puede utilizarse como más de un tipo; puede utilizarse como su propio tipo, cualquier tipo base o cualquier tipo de interfaz si implementa interfaces. Esto se denomina polimorfismo. En C#, todos los tipos son polimórficos. Los tipos se pueden utilizar como su propio tipo o como una instancia de Object, porque cualquier tipo trata automáticamente a Object como tipo base.
Animal
emite sonido
Metodo
Vaca
Gato
Perro
emite sonido
emite sonido
emite sonido
MUU
GUAU
MIAU
Polimorfismo(cont...)
Para reemplazar un miembro de una clase base por un nuevo miembro derivado, se requiere la palabra clave new. Si una clase base define un método, campo o propiedad, la palabra clave new se utiliza para crear una nueva definición de ese método, campo o propiedad en una clase derivada. La palabra clave new se coloca antes del tipo de valor devuelto de un miembro de clase que se reemplaza.
Polimorfismo(cont...)
Cuando se utiliza la palabra clave new, se llama a los nuevos miembros de clase en lugar de los miembros de clase base que se han reemplazado. Esos miembros de clase base se denominan miembros ocultos. Aún es posible llamar a los miembros de clase ocultos si una instancia de la clase derivada se convierte en una instancia de la clase base. .
Polimorfismo(cont...)
Para que una instancia de una clase derivada controle por completo un miembro de clase de una clase base, la clase base debe declarar ese miembro como virtual. Esto se consigue agregando la palabra clave virtual antes del tipo de valor devuelto del miembro. Una clase derivada tiene entonces la opción de utilizar la palabra clave override, en lugar de new, para reemplazar la implementación de la clase base por la propia.
Polimorfismo(cont...)
- Métodos
- Campos
- Propiedades
- Eventos
Clase derivada de la clase base
Hereda
Puede
- Reemplazar el miembro de la clase base por uno nuevo en la clase derivada.
- Reemplazar un miembro base virtual.
Cambiar los datos y comportamientos
Dos opcions
GRACIAS