El post que buscas se encuentra eliminado, pero este también te puede interesar

aprende visual basic desde 0 capitulo #6

aprende visual basic desde 0 capitulo #6

Este dia comenzaremos con : POO: IMPLEMENTACION DE LA HERENCIA

Bases de la Programación Orientada a Objetos


Como ha visto antes, los tres pilares de la Programación Orientada a Objetos (POO) son:
- Herencia
 -Encapsulación
 -Polimorfismo

¿Qué es la Herencia?


En la programación orientada a objetos, podemos compartir las características de una clase base en otras clases
derivadas de la clase base. Esto se denomina herencia. Herencia es el concepto de reutilizar atributos y
operaciones comunes de una clase base en una clase derivada.


Imaginemos tres clases: Cliente, Empleado y Persona. Los atributos y operaciones de la clase base Persona
también pueden aplicarse a Cliente o Empleado. La reutilización de estos atributos y operaciones es una técnica
eficaz.

Visual Basic .NET soporta herencia simple a nivel de clase. Es decir, una clase únicamente puede heredar de
una sola clase base. Esto se muestra en el ejemplo de la ilustración anterior. Otros lenguajes, como C++, permiten
que una clase herede de múltiples clases.

java

Cómo heredar de una clase

En Visual Basic .NET, la herencia puede utilizarse para derivar una clase de una clase existente. La clase derivada
puede heredar todas las propiedades, métodos, miembros de datos, eventos y controladores de eventos de la clase
base, facilitando la reutilización de la clase base por toda la aplicación.

La herencia en Visual Basic .NET es bastante sencillo, simplemente tendremos que tener en cuenta
alguna de estas cosas

Inherits -> declara una clase derivada
notinheritable -> decimos que esa clase no es heredable (no se puede usar como clase base)
mustinherit -> solo se usa como clase base, no puede ser instanciada

Inherits
La palabra clave Inherits se utiliza para definir una clase derivada que heredará de una clase base existente

Programacion

NOTA: Podemos utilizar la palabra clave MyBase para invocar métodos en una clase base cuando invalidan
métodos en una clase derivada. También podemos utilizar la palabra clave MyBase para invocar el constructor y
el destructor de la clase base en nuestra clase derivada


NotInheritable
La palabra clave NotInheritable se utiliza para definir una clase que no puede utilizarse como clase base para
herencia. Si otra clase intenta heredar de esta clase, se generará un error de compilación

C++

MustInherit
La palabra clave MustInherit se utiliza para definir clases que no están pensados para ser utilizados directamente
como objetos instanciados. La clase resultante debe ser heredada como una clase base para utilizarla en el objeto
de una clase derivada instanciada.

Protected
Utilizamos el acceso Protected para limitar el ámbito de una propiedad, método, miembro de datos, evento o
controlador de eventos a la clase que los define y cualquier clase derivada basada en esa clase base

c#

EJEMPLO 1: DE IMPLEMENTACION DE HERENCIA 2


Dadas estas 2 preguntas ¿Qué tienen en comun un Empleado y un Gerente?, ¿Son diferentes ambos sujetos?
Si se estudia a fondo las respuestas a estas preguntas, se deduce que tienen datos y metodos comunes a ambos,
pero tambien información unica para cada uno!!
Se podrian implementar clases para cada uno de estos objetos diferentes (Empleado y Gerente), pero que hereden
las caracteristicas comunes de una clase Base (una clase Persona). Observe la tabala 1.1

En este ejemplo, tanto la clase Empleado como Gerente cuentan con los campos (Nom1, Nom2), y también el
método Identificarse ( ). A pesar de que no escribió el código específico para incluirlos, ellos heredan los 2 campos
y el método a partir de la clase base Persona, gracias a reutilizar el código de la clase Persona.

visual

Además, vera que se agregaron Constructores de Clases (subrutina New ( )) a cada subclase, los cuales se ejecutan
cuando se crea/instancia objetos de estas clases. En este caso, cada constructor solo avisa que se creó un objeto de
la subclase indicada.

Basic

PRINCIPIO DEL POLIMORFISMO EN LA POO


Gracias a la Herencia Simple y/o Múltiple se logra la reutilización de bloques de código de una Clase Base y la
especialización de las tareas hechas dentro de cada una de sus Clases Derivadas. Ahora vera el último principio
de la POO, el polimorfismo, el cual surge del desarrollo del principio de la herencia.
El Polimorfismo se refiere a la posibilidad de definir múltiples clases con funcionalidad diferente, pero con
métodos o propiedades denominados de forma idéntica, que pueden utilizarse de manera intercambiable
mediante código del lado del cliente en tiempo de ejecución.

Visual Basic le ofrece 3 formas de implementar el polimorfismo, las cuales son:

a) Sobrescribir(Overwrite) Miembros de Clase heredados
b) Sobrecarga (Overload) de métodos de Clase
c) Definición de Interfaces de Clase

SOBRESCRITURA (Overwrite) DE MIEMBROS HEREDADOS


La sobre-escritura es el reemplazo en una Clase derivada de un método heredado desde la Superclase.

EJEMPLO 2: Tal como se explico en la Herencia, todas las clases de .NET se derivan directa o indirectamente de
la clase Object. La Clase Base (Object) de todas las clases de .NET tiene el método ToString( ) que se utiliza para
recuperar información (en formato cadena) del contenido de la clase. Pero usted puede reemplazar este método
ToString por otro, el cual se ajustara a su diseño.

Para sobrescribir a un método en la clase derivada siga estos pasos:
a) Seleccione cuales de los métodos públicos de la Superclase podrán ser reemplazados en Clases derivadas de
ella, agregando la palabra reservada Overridable entre el alcance Public y el tipo del método (Function, Sub o
Property).

b) Determine las Clases derivadas de la Subclase anterior en las cuales se reemplazaran métodos heredados por
uno propio.

c) Elabore cada método reemplazado (de la Superclase) utilizando la palabra reservada Overrides después del
alcance Public, con este formato:

poo

d) Tenga el cuidado de escribir exactamente el mismo listado de argumentos del método reemplazado. Cuando
usted sobrescribe un Método Heredado establece un CONTRATO/FIRMA el cual garantiza que usara el mismo
encabezado del método Sobreescrito, no más ni menos, pero podrá personalizar el código de este nuevo método


EJEMPLO 3 Sobre escritura del Método implícito ToString( )

A cada Subclase de .NET se le puede crear su propia versión del método ToString para que devuelva una
representación adecuada de acuerdo a necesidades específicas. En la clase Empleado (vista anteriormente en esta
introduccion) puede redefinir al método ToString( ) para que le devuelva solo una cadena fija, así:
Public Overrides Function ToString() As String

Return "YO SOY OBJETO-CLASE Empleado"
End Function

Para usar esta función reemplazada, solo basta crear un objeto de la clase Empleado y cuando vea sus métodos
vera a ToString( ) pero será la versión local (sobre escrita / reemplazada) de este ejemplo. .

SOBRECARGA/OVERLOAD: Especialización de una Clase


Otra forma de implementar el Polimorfismo en los lenguajes orientados a objetos es la posibilidad de definir
varias funciones en una clase con el mismo nombre. De esta forma, podría crear N versiones diferentes del mismo
método, pero cada uno de estos métodos recibirá argumentos de distintos tipos, para evitar tener que cambiarles
nombres a estos N métodos llamados igual.

¿Cómo implementar la SobreCarga de Métodos de Clases?
Suponga que quiere hacer una función que realice la suma sobre dos valores numéricos, sería lógico pensar que si
esos valores son de tipo entero, el resultado que devuelva la función también debería ser de tipo entero. En caso
de que los valores a usar en la operación sean de tipo flotante, el resultado lo devolvería en valor flotante. En los
lenguajes no orientado a objetos, tendría que crear dos funciones con nombres diferentes, por ejemplo: SumaInt y
SumaFloat.

EJEMPLO 5: Sobrecarga (Overload) de Métodos

1. Retomando el ejemplo anterior sobre la Herencia Simple, cree una nueva clase llamada Guardia que herede a la
superclase Persona. Por seguridad conviene que un vigilante no se identifique ante cualquiera, sino que lo haga
solo con un Jefe (que se identifique como tal). Esta clase Guardia se define así:

aprende visual basic desde 0 capitulo #6

2. En este caso, ha sobrecargado al método Identificarse( ) original (heredado de la Superclase Persona), creando
un nuevo método Identificarse ( ) en la clase Vigilante, que tiene 2 argumentos: Nombre del Jefe y su
identificación (Valida solo si es 5, 17 o 400). Esto permitirá la especialización en la seguridad del Guardia.
Para demostrar como el compilador diferencia entre cual método Identificarse( ) utilizar, escriba las siguientes
líneas de código en su Procedimiento de Evento preferido de un Form:

java

3. Cuando el Guardia1 deba identificarse, seleccione a su método Identificarse( ) Vera que le aparece la imagen
siguiente, previniendo que hay otro método Identificarse( ) sobrecargado disponible

Programacion

4. Para ver los 2 métodos Identificarse( ) disponibles, escriba un ( y vera una de estas opciones:

C++

Utilice las teclas cursoras (Arriba-Abajo) para seleccionar cual método Identificarse ( ) utilizar. El primer método
es heredado de la SuperClase Persona y el segundo es el sobrecargado de la clase Vigilante

5. Como es un objeto Guardia trabajara con el segundo método, que requiere el nombre del Jefe y su IdSecreto
para que se identifique. Redacte los valores de argumentos en las siguientes llamadas:

Guardia1.Identificarse("Julio", 17)
Guardia1.Identificarse("Julio", 6)

6. Vera que con la primera llamada el Objeto Guardia1 se identifica, en cambio en la segunda no lo hace. ¿Por
que?

Pero ¿Solo una vez puedo sobrecargar el método Identificarse ( ) ?

No, usted puede sobrecargar a una clase con N métodos del mismo nombre, pero recuerde que debe
diferenciarlos a todos ellos en sus argumentos y/o valor a retornar

Ejercicios


Prepare un nuevo proyecto de Visual Studio 2008.net y guárdelo en la ubicación de su preferencia, para luego
asignarle el nombre

Ejemplo1: Creando una calculadora usando Herencia:


1) Abra una aplicación de Windows y diseñe el siguiente formulario:

c#


2) Aplique los siguientes valores a las propiedades a los elementos del formulari

visual
Basic

3) Agregue un clase llamada Operaciones, que contendrá las 4 operaciones básicas

poo

4) Dentro de la clase Operaciones defina las siguientes variables de clase:

aprende visual basic desde 0 capitulo #6

java

6) Crear otra Clase llamada Ejemplo que heredara todos los elementos públicos y protegidos de la clase
Operaciones:

Programacion


7) Colocamos el siguiente código a la clase ejemplo

C++

En la línea 7: Le indicamos a la clase Ejemplo que va a heredar todos los miembros públicos y
protegidos de la clase Operaciones.

Línea 8: Definimos una Función la cual será la encargada de trabajar con el formulario y la clase
Operaciones, esta servirá de enlace ya que no podremos heredar directamente desde formulario
porque el formulario ya tienen una herencia definida de la clase Forms (.NET Framework), esta
función recibe 3 parámetros: los números a operar y el tipo de operación a realizar.

Línea 10: Me.numero1 = num1, “numero1” no existe en esta clase “Ejemplo” pero como la clase
Ejemplo hereda de la clase Operaciones en donde “numero1” SI existe entonces es por eso que no
nos causa ningún error, SI NO EXISTIERA la herencia entonces esto si causaría un error ya que la
variable no habría sido declarada, básicamente lo que estamos haciendo es asignando el parámetro
num1 a la variable de la clase Operaciones numero1.

Línea 11: Misma explicación del punto anterior.

Línea 12-22: Dependiendo del parámetro “operacion” recibido desde el formulario, así será la
operación a realizar.

Línea 13, 15, 17, 19: las funciones que se mandan a llamar directamente no existen en la clase Ejemplo
pero si en la clase Operaciones que es de donde estamos heredando por lo tanto no nos causa ningún
error.

8) Ahora solo nos falta programar el botón que se encuentra en el formulario, por lo tanto regresamos a dicho
formulario, y lo primero que hacemos es instanciar la clase Ejemplo, OJO no será necesario instanciar la
clase Operaciones ya que Ejemplo hereda de ella por lo tanto podremos accesar a los miembros.


c#

9) Ahora dependiendo del RadioButton Elegido, así será la operación a realizar

visual

10) Complementar el código que las instrucciones que faltan para obtener el resultado completo:

Basic

11) Ahora solo depuramos la Solución (F5), y verificaros que la aplicación funciona correctamente

ESPERO LES HAYA GUSTADO Y LES SIRVA!!

dijo:Guias de la 1 a la 4

Capitulo #1 http://www.taringa.net/posts/info/11579281/Aprende-Visual-Basic-desde-0-Capitulo-_1.html

Capitulo#2 http://www.taringa.net/posts/info/11581935/Aprende-Visual-Basic-desde-0-Capitulo-_2.html

Capitulo #3 http://www.taringa.net/posts/info/11636223/Aprende-Visual-Basic-desde-0-Capitulo-_3.html

Capitulo#4 http://www.taringa.net/posts/info/11657895/Aprende-Visual-Basic-desde-0-Capitulo-_4.html[/quote]


poo

aprende visual basic desde 0 capitulo #6

1 comentario - aprende visual basic desde 0 capitulo #6

lion3612
hace 2 semanas prueba de computacion......me saq un 2