Soft devfund ppt_vb_2.3

  • 87 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
87
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Lección 1.198-361 Fundamentos de Desarrollo de Software (con Visual Basic)
  • 2. Lección 1.198-361 Fundamentos de Desarrollo de SoftwareGeneralidades de la lección • Los alumnos comprenderán el polimorfismo. • En esta lección aprenderán: • A extender la funcionalidad en una clase después de heredarla de una clase base. • Anular los métodos en una clase derivada.
  • 3. Lección 1.198-361 Fundamentos de Desarrollo de SoftwarePreguntas clave 1. ¿Cómo se puede cambiar la función de una clase después de heredarla de una clase base? 2. ¿Cómo se anulan los métodos?
  • 4. Lección 1.198-361 Fundamentos de Desarrollo de Software Public Class A Public Overridable Sub say() Console.WriteLine("A") End Sub End Class Public Class B : Inherits A Overrides Sub say() Console.WriteLine("B") End Sub End Class Public Class C Public Sub Main() Dim B As New B() B.say() End Sub End Class
  • 5. Lección 1.198-361 Fundamentos de Desarrollo de Software Terminología. • MyBase (Mi Base): Es una palabra clave que se usa para tener acceso a los miembros de la clase base desde una clase derivada. • New (Nuevo): Cuando se usa como modificador, esta palabra clave esconde de manera explícita un miembro heredado de una clase base. Cuando se esconde un miembro heredado, la versión derivada del miembro reemplaza la versión de la clase base. • Override (Anular): Es un modificador necesario para prolongar o modificar la implementación abstracta o virtual de un método, propiedad, indexador o evento heredado.
  • 6. Lección 1.198-361 Fundamentos de Desarrollo de SoftwareTerminología (continúa) • Polimorfismo: Es la habilidad para redefinir un método en una clase derivada (una clase que heredó sus estructuras de información y métodos de otra clase) • Una clase se puede usar como más de un tipo. Se puede usar como su propio tipo, como cualquier tipo de base o cualquier tipo de interfaz en caso de que implemente interfaces. • NotOverridable (No Anulable): No se puede heredar. Un método de sellado no puede anular un método en una clase base y tampoco se puede anular así mismo posteriormente en una clase derivada. • Overridable (Anulable): Es una palabra clave que sirve para modificar un método o declaración de propiedad en cuyo caso se le conoce como miembro virtual. • El miembro virtual permite que su implementación se reemplace dentro de las clases derivadas.
  • 7. Lección 1.198-361 Fundamentos de Desarrollo de SoftwarePolimorfismo. • Se refiere a la habilidad para redefinir métodos en una clase derivada y usar una clase como más de un tipo. Se puede usar como su propio tipo, como cualquier tipo de base o como cualquier tipo de interfaz en caso de que implemente interfaces. • No sólo es importante para las clases derivadas sino también para las clases base. El uso la clase base podría ser lo mismo que usar un objeto de la clase derivada que fue casteada para el tipo de clase base. • Cuando una clase derivada hereda de una clase base, obtiene todos los métodos, campos, propiedades y eventos de la clase base. • Para cambiar la información y comportamiento de una clase base tiene dos opciones: Puede reemplazar el miembro base con un nuevo miembro derivado o puede anular un miembro virtual base.
  • 8. Lección 1.198-361 Fundamentos de Desarrollo de SoftwareUso de la palabra clave Shadows • Para reemplazar un miembro de la clase base con un nuevo miembro derivado es necesario usar la palabra clave shadows. • Si la clase base define un método, campo o propiedad, entonces se usa la palabra clave shadows para crear una nueva definición de dicho método, campo o propiedad en una clase derivada.
  • 9. Lección 1.198-361 Fundamentos de Desarrollo de Software Uso de la palabra clave Shadows (continúa) • La palabra clave shadows se escribe antes del tipo de retorno del miembro clase que se va a reemplazar . Public Class BaseClass Public Function WorkField() As Integer End Function Public Sub DoWork() End Sub End Class Public Class DerivedClass : Inherits BaseClass Public Shadows Function WorkField() As Integer End Function Public Shadows Sub DoWork() End Sub End Class
  • 10. Lección 1.198-361 Fundamentos de Desarrollo de Software Uso de la palabra clave Shadows (continúa) • Cuando se usa la palabra clave shadows, se llaman los nuevos miembros de clase y no a los miembros de la clase base que se reemplazaron. • A esos miembros de la clase base se les llama miembros ocultos. Los miembros de la clase oculta todavía se pueden llamar si una instancia de la clase derivada se moldea para una instancia de la clase base.
  • 11. Lección 1.198-361 Fundamentos de Desarrollo de SoftwareUso de las palabras clave Overridable yOverrides • Para que una instancia de una clase derivada controle de manera total un miembro clase de una clase base, la clase base tiene que declarar dicho miembro como Overridable en VB. • Entonces, una clase derivada usa la palabra clave overrides (anular) y no la palabra new (nuevo) para reemplazar la implementación de la clase base con la propia. Public Class BaseClass Public Function WorkField() As Integer End Function Public Overridable Sub DoWork() End Sub End Class Public Class DerivedBlass : Inherits BaseClass Public Function WorkField() As Integer End Function Public Overrides Sub DoWork() End Sub End Class
  • 12. Lección 1.198-361 Fundamentos de Desarrollo de SoftwareUso de las palabras clave Overridable yOverrides (continúa) • Los campos no pueden ser virtuales; únicamente los métodos, propiedades, eventos y creadores de índices pueden ser virtuales. • Cuando una clase derivada anula un miembro virtual, entonces dicho miembro se llama aún cuando se tiene acceso a una instancia de dicha clase como una instancia de la clase base. DerivedClass B = new DerivedClass(); B.DoWork(); // Se llama al nuevo método. BaseClass A = (BaseClass) B; A.DoWork(); // También se llama al nuevo método.
  • 13. Lección 1.198-361 Fundamentos de Desarrollo de SoftwareLos miembros virtuales permanecenvirtuales • Si una clase A declara un miembro virtual, la clase B deriva de la clase A y la clase C deriva de la clase B, la clase C hereda el miembro virtual y tiene la opción para anularlo a pesar de que la clase B declaró una anulación para dicho miembro. Public Class A Public Overridable Sub DoWork() End Sub End Class Public Class B : Inherits A Public Overrides Sub DoWork() End Sub End Class Public Class C : Inherits B Public Overrides Sub DoWork() End Sub End Class
  • 14. Lección 1.198-361 Fundamentos de Desarrollo de Software Uso de la palabra clave NotOverridable • Una clase derivada puede detener la herencia virtual al declarar una anulación como NotOverridable (No Anulable). • En los ejemplos de código en la parte inferior, el método DoWork ya no es virtual para ninguna clase derivada de C. Pero todavía es virtual para las instancias de C incluso si están moldeadas para el tipo B o para el tipo A. Public Class A Public Overridable Sub DoWork() End Sub End Class Public Class B : Inherits A Public Overrides Sub DoWork() End Sub End Class Public Class C : Inherits B Public NotOverridable Overrides Sub DoWork() End Sub End Class
  • 15. Lección 1.198-361 Fundamentos de Desarrollo de Software Uso de la palabra clave NotOverridable (continúa) • Las clases derivadas pueden reemplazar los métodos de sellado al usar la palabra clave Shadows. • Si se llama DoWork en D al usar una variable de tipo D, entonces se llama al nuevo DoWork. Si una variable del tipo C, B o A se usa para tener acceso a una instancia de D, entonces una llamada a DoWork seguirá las reglas de la herencia virtual y asignará dichas llamadas a la implementación de DoWork en la clase C. Public Class C : Inherits B Public NotOverridable Overrides Sub DoWork() End Sub End Class Public Class D : Inherits C Public Shadows Sub DoWork() End Sub End Class
  • 16. Lección 1.198-361 Fundamentos de Desarrollo de SoftwareUso de la palabra clave MyBase • Una clase derivada que reemplazó o anuló un método todavía puede tener acceso al método en la clase base usando la palabra clave MyBase. Public Class A Public Overridable Sub DoWork() End Sub End Class Public Class B : Inherits A Public Overrides Sub DoWork() End Sub End Class Public Class C : Inherits B Public Overrides Sub DoWork() MyBase.DoWork() ‘ B’s DoWork() ‘ Behaviors specific to C’s DoWork() End Sub End Class
  • 17. Lección 1.198-361 Fundamentos de Desarrollo de SoftwareRepaso. • Describa las situaciones en las cuales se usan las siguientes palabras clave. Provea código para soportar su respuesta. • Overridable • Overrride • MyBase • Shadows • NotOverridable