Polimorfismo

Páginas: 5 (1212 palabras) Publicado: 28 de agosto de 2011
Polimorfismo en C#. Redefinición de métodos, métodos abstractos y virtuales. Métodos genéricos, operadores relacionados al polimorfismo. Sobrecarga de funciones y operadores

Temas
• Métodos abstractos y virtuales • Clases abstractas • Sobrecarga de métodos y operadores • Polimorfismo en c# • Uso de polimorfismo mediante métodos

genéricos

Clase pasada
• Que significa instanciar unaclase? • Cuales son las principales ventajas de la herencia? • A que llamábamos encapsulamiento de miembros? Que problemas provocaban la utilización del encapsulamiento de atributos en las clases? • Cuales palabras se utilizaban para definir el acceso a los miembros de una clase? Que significa cada una?

Bibliografía
Antonio González Saco • Programming Microsoft Windows with C#. Charles Petzold• C# design patterns, a tutorial. Addison Wesley
• El lenguaje de programacion c sharp. Jose

Jerarquía de clases hipotética

Especulación científica
Es esto posible en C#?
Figura MyFigure1 = new Circulo(); Figura MyFigure2 = new Cuadrado(); Figura MyFigure3 = new Poligono(); Figura MyFigure4 = new Amorfo();

Polimorfismo
Es la capacidad de almacenar objetos de un determinado tipo envariables de tipos antecesores del primero, a costa esto de sólo poderse acceder a través de dicha variable a los miembros comunes a ambos tipos.

Métodos virtuales
Ya hemos visto que es posible definir tipos cuyos métodos se hereden de definiciones de otros tipos. Lo que ahora vamos a ver es que además es posible cambiar dicha definición en la clase hija. A este tipo de métodos se les llamamétodos virtuales.

Métodos virtuales
Clase Base… virtual () { } Clase Derivada… override () { }

Métodos abstractos
Es una variante de método virtual que no es programado en la clase base y obliga al programador a redefinirlo en la clase derivada si desea que esta clase pueda ser instanciada. Toda clase que contenga algún método abstracto o que herede uno y no lo redefina será una claseabstracta

Métodos abstractos
abstract Class Base… abstract () { } Class Derivada… override () { }

Clases abstractas
Una clase abstracta es aquella que forzosamente se ha de derivar si se desea que se puedan crear objetos de la misma. Puede o no contener métodos abstractos pero toda clase que contenga métodos abstractos debe ser definida como abstracta. Para ello se antepone la palabraabstract a la definición de clase

Operadores
Object is Class: Devuelve true si el objeto Object es del tipo de Class Object as Class: En nuestro caso se utilza para tratar al objeto Object del tipo de una clase base como un objeto de una clase derivada. Tiene otros usos.

Aterrizando. Un caso de estudio.
Se desea desarrollar un programa que lleve algunas estadísticas relacionadas con laspersonas que trabajan y estudian en una universidad. Para esto utilizaremos como base la jerarquía de clases que hemos desarrollado en las conferencias.

Problema
Se asumirá que el cumpleaños de los estudiantes coincide con el día de graduación del curso. En ese caso si su promedio es mayor a 2 puntos debe pasar de curso.

Problema
Se asumirá que el cumpleaños de los empleados coincidecon el día de comienzo en su empleo, se desea incrementar sus años de experiencia en 1 y su salario en 20.

Problema
Se han realizado algunas pequeñas modificaciones a las clases de la jerarquía para hacerlas más cortas y rápidas de escribir. Por ejemplo se han definido todos los atributos como públicos, se han eliminado las propiedades y algunos atributos no relevantes

Como lo hacemos?Person
Name Age Initials Birthday() Salary Workplace Profession YearsOfExperience

Employee
School Course Speciality Grade

Student

class Person { public public public public {

string Name; string Initial; int Age; void Birthday() Age++;

} public Person() { Name=""; Initial=""; } public Person(string aName, int anAge) { Name=aName; Initial=aName.Substring(0,1); Age=anAge; } }...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Polimorfismo
  • Polimorfismo
  • Polimorfismo
  • Polimorfismo
  • Polimorfismos
  • Polimorfismo
  • Polimorfismos
  • Polimorfismo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS