Beruflich Dokumente
Kultur Dokumente
Es la capacidad que tienen los objetos de responder de diferentes formas al mismo mensaje (esconder
diferentes implementaciones tras una sola interface, permitir invocar genéricamente un
comportamiento cuya implementación será delegada al objeto correspondiente recién en tiempo de Herencia
ejecución).
Analogía
La herencia es una relación entre clases en la cual
En tiempo de ejecución, los objetos de una clase derivada pueden ser tratados como objetos de una
una clase comparte la estructura y comportamiento
clase base en lugares como los parámetros del método y las colecciones o arreglos. Cuando esto ocurre
definido en otra clase. Cada clase que hereda de
el tipo del objeto declarado ya no es idéntico a su tipo tiempo de execution.
otra posee:
La definición del método reside en la clase base
Los atributos de la clase base además de
La implementación del método reside en la clase derivada
los propios.
La invocación es resuelta al momento de ejecución
Soporta todos o algunos de los métodos
Ejemplos de implementación de polimorfismos
de la clase base.
Variables Polimórficas: Declaración de variables con referencia varios tipos.
Llamadas polimórficas: Llamadas de métodos con diferentes constructores.
Propiedades: Participan del mecanismo de polimorfismo igual que los métodos Acoplamiento / Relaciones
Interface: La cual es un tipo de herencia por contrato que obliga a las clases que implementan la
interfaz a implementar cada uno de los miembros de esa interfaz.
Herencia: Atreves de las palabras claves base y this.. Es la medida en la que un objeto
Clases abstractas: atreves de métodos virtuales y override). depende de otro
Atreves d métodos convencionales con virtuales y override Para funcionar, la información fluye
Sobrecargar o Overloading de métodos y constructores. atreves de mensajes.
Inyección de dependencia: atreves de objetos creados de las jerarquías de clases.
CLASE VS ESTRUCTURAS DELEGADOS
• Una clase es un tipo de referencia (ref type). • Un delegado es un tipo de referencia que puede ser utilizado para encapsular un
• Cuando un objeto de la clase se crea, la variable a la que se le asigna el objeto contiene sólo método con nombre (nombrado) o un método anónimo.
una referencia a la memoria. • Los delegados se utilizan para pasar métodos como argumentos a otros métodos.
• Una estructura es un tipo de valor. (value type) • Los delegados pueden ser encadenados, por ejemplo, varios métodos pueden ser
• Cuando la estructura se le asigna a una nueva variable, se copia. La nueva variable y la llamados en un solo evento.
variable original por lo tanto, contienen dos copias de los mismos datos. Los cambios • Los delegados son métodos con nombres:
realizados en una copia no afectan a la otra copia. • Cuando se instancia de un delegado utilizando el nombre de un método.
• Los delegados construidos con un método de nombre pueden encapsular un
CLASE ABSTRACTA método de instancia de tipo o bien un método estático.
• Una clase abstracta no puede ser instanciada. • El uso de métodos con nombre es la única manera de crear instancias de un
• El propósito de una clase abstracta es proporcionar una definición común de una clase base delegado.
que múltiples clases derivadas pueden compartir. • Una propiedad útil de los delegados es que varios objetos se pueden asignar a
una instancia de un delegado mediante el operador + y desasignar con -.
VIRTUAL Y ABSTRACT
• Cuando una clase base declara un método como virtual, una clase derivada puede remplazar EVENTOS
el método con su propia implementación. Un evento en C# es una manera de una clase proporcionar notificaciones a los clientes
de la misma cuando algo interesante sucede a un objeto.
CLASES SELLADAS Los eventos proporcionan una manera útil para que los objetos indiquen cambios de
• Una clase sellada no se puede utilizar como una clase base. estado que pueden ser útiles a los clientes de los mismos.
• Las clases selladas se utilizan principalmente para evitar la derivación. Los eventos se declaran utilizando delegados.
• Al igual que la palabra clave abstract, sealed puede ser utilizada como prefijo a nivel de clase Un evento es una manera para que una clase permita a los clientes dar a los delegados
o a nivel de método. métodos que deben ser llamados cuando se produce algo específico.
INTERFACES ACCECIBILIDAD
• Las interfaces describen un conjunto de funcionalidades relacionadas que pueden pertenecer Se especifica cómo acceder a sus tipos y miembros desde el código de cliente mediante
a una clase o estructura. el uso de los modificadores de acceso:
• Las interfaces pueden estar conformadas por métodos, propiedades, eventos. • Publico: Cualquier clase puede “ver” los miembros públicos de otra clase
• Cuando una clase o estructura implementa una interfaz debe definir a todos los miembros de • Privado: Sólo la clase puede ver sus propios miembros privados
la interfaz. • Abstract: protected, internal, protected internal, sealed.
• La interfaz, por sí misma, no provee funcionalidad, si no una clase o una clase o estructura
puede implementarla.
• Una interfaz no puede ser instanciada.
• Las clases y las estructuras pueden implementar mas de una interfaz.
• Una interfaz puede heredar de múltiples interfaces.
El mundo color de Objetos
Todo es un Objeto ¡¿~?!
¿Qué es una Clase? ¿Qué es un objeto?
Un objeto posee:
Una clase es una definición o descripción abstracta de un grupo de objetos con:
Estado, exhibe un Comportamiento bien definido
IDENTIDAD .
y tiene una Identidad única.
INFORMACIÓN en común (ATRIBUTOS).
COMPORTAMIENTOS similares (MÉTODOS O OPERACIONES)
Los valores del conjunto de atributos definen el ESTADO.
La misma forma de relacionarse con otros objetos (RELACIONES)
Sirve como modelo para la creación de objetos, por esto los
objetos pueden ser agrupados en clases, ya que un objeto es una
INSTANCIA de una clase.
ESTADO IDENTIDAD
• Lo que el objeto sabe de la existencia de si mismo. Cada objeto tiene
• El estado de un objeto es una de las posibles una identidad única,
condiciones en que el objeto puede existir. incluso si su estado
• El estado normalmente cambia en el transcurso del es idéntico al de otro
tiempo. objeto
• El estado de un objeto es implementado por un
conjunto de propiedades (atributos), además de las
conexiones que puede tener con otros objetos.
COMPORTAMIENTO
• Lo que el objeto puede hacer.
• El comportamiento de un objeto determina cómo éste actúa
y reacciona frente a las peticiones de otros objetos.
• Es modelado por un conjunto de mensajes a los que el
objeto puede responder (operaciones que puede realizar).
• Se implementa mediante métodos.