C#: Programación orientada a objetos

Clases y miembros abstractos

¡Prueba gratis durante 10 días

nuestros 1271 cursos !

Prueba gratis Mostrar modalidades de suscripción
En este video vamos a definir el concepto de clase abstracta, veremos también cuándo es conveniente implementar una clase de este tipo. Y haremos un ejemplo práctico para conocer su sintaxis y funcionamiento.
07:30

Transcripción

Las clases abstractas nos van a ayudar a utilizar el concepto de herencia dentro de nuestro sistema. Vamos a crear una clase de este tipo cuando requerimos que cada clase derivada tenga comportamientos definidos de forma diferente. Retomando el ejemplo de nuestro sistema, podemos pensar que la clase "Materia" podría ser abstracta. Ya conocemos las características o atributos de la clase "Materia" pero ahora queremos conocer los métodos. Vamos a suponer que yo creo un método "Evaluar". Voy a poner que es público, que regresa un decimal y la voy a nombrar "Evaluar". Ahora pienso en cómo debería construir este comportamiento y no llego a una conclusión ya que sé que cada materia se va a evaluar de diferente forma dependiendo su clasificación. Vamos a suponer que existen materias de tipo "Académica", materias "Deportivas" y materias Culturales". Yo sé que la materia de tipo "Académica" la evaluaré por medio de la calificación de tareas y examen. Una materia "Deportiva" la voy a evaluar en base a la asistencia y una prueba final. Y finalmente, una clase o materia de tipo "Cultural" la voy a evaluar en base a la asistencia y a una presentación. Ya que he analizado que la evaluación va a ser diferente para cada tipo de materia, entonces puedo llegar a la conclusión de que podría definir la clase "Materia" como abstracta. Coloco la palabra reservada "abstract" antes de la clase y el método "Evaluar" lo voy a modificar de la siguiente forma. Agrego después del modificador de acceso la palabra "abstract". Como podemos ver, este método no tiene un cuerpo definido ya que su definición se va a hacer en cada una de las clases derivadas de la clase materia. Cabe mencionar que cuando utilizamos o creamos clases abstractas no vamos a poder crear instancias de las mismas. Voy a agregar las clases que requiero ahora, "Agregar clase", la voy a nombrar "Académica", agrego una más que va a ser "Deportiva" y una más que va a ser la clase "Cultural". Voy a indicar que cada una de estas clases heredada de la clase "Materia". Voy a dar clic en "Guardar todo". Y podemos ver que nos indica que la clase "Cultural" no implementa el miembro abstracto heredado que es el método que hemos creado, "Evaluar". Siempre que creemos una clase derivada de una clase abstracta vamos a tener que, obligatoriamente, definir los métodos que definimos en la clase de base, en este caso, "Materia". Por el momento la voy a dejar así, solamente quiero indicar la herencia en cada una de las clases. Y ahora, lo que tendríamos que hacer es en cada una definir el método abstracto que nos está marcando, que es "Evaluar". Voy a poner lo siguiente: "public" y la palabra "override", quiere decir que está sobrescribiendo el método de la clase base, "Evaluar" de hecho me lo da por "default" y en caso de que no tengamos todavía clara la funcionalidad que va a tener este método podemos arrojar la siguiente excepción. Esto indica que no está implementado para esta clase. Lo voy a dejar de la misma forma y lo voy a agregar ahora a las clases que nos faltan. De hecho voy a copiar el código para que sea más rápido. En cada una de las clases derivadas estoy agregando el método "Evaluar" con la palabra reservada "override". Suponiendo que de la clase "Deportiva" ya sabemos cuál va a ser la implementación voy a quitar esta excepción y voy a indicar lo siguiente: Con pseudocódigo o con comentarios voy a indicar que este tipo de materia se va a evaluar en base a "Prueba" y "Asistencia. Supongamos que estos datos que se requieren están registrados en la base de datos y los vamos a consultar y con este método vamos a calcularlo. Además, en la base de datos ya estaría definido cuánto vale la prueba y cuánto vale la asistencia. Tendríamos que regresar una calificación a partir de la evaluación. Solo para que funcione correctamente vamos a poner que calificación va a ser igual a 90 puntos. Hemos definido el método "Evaluar" en la clase "Deportiva" es decir, lo que se va a hacer cuando se evalúe una materia de tipo "Deportiva". Tendríamos que hacer lo mismo para cada una de estas clases la clase "Cultural", y "Académica", que va a hacer el cálculo de evaluar de diferente forma. En la clase "Académica", por ejemplo, se va a evaluar en base a las tareas y a un examen, y también se hará de otra forma en la clase "Cultural". Por ello, hemos utilizado una clase abstracta y a su vez, un método abstracto.

C#: Programación orientada a objetos

Conoce a fondo el paradigma de programación orientado a objetos, partiendo de los conceptos principales y la teoría para posteriormente aplicarlo en el código con Visual Studio C#.

2:22 horas (31 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:5/04/2017

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.