Hola, Bienvenido a mi blog!

Puedes seguirnos en :

Categorías

Base De Datos

Programación

¡Suscríbete a mi blog!

Recibe en tu correo las últimas noticias del blog. Sólo ingresa tu correo para suscribirte.

Ads 468x60px

.

miércoles, 6 de marzo de 2013

APLICANDO HERENCIAS, POLIMORFISMO E INTERFACES


Empezamos con nuevo proyecto, lo llamaremos “ejemploherencia”. Luego damos paso a elimiar si queremos el Form1, agregamos un nuevo formulario, lo llamaremos "FrmHerencia" como lo muestran las imágenes:


Herencia: ejemplo segun el diagrama:

  • En la propiedades del formulario nos dirigimos a su propiedad Text y digitamos el nombre "ejemplo:  herencia ".
  •  Nos ponemos a diseñar el formulario haciendo uso del cuadro de herramientas: "4 Label, 2 TextBox y un Button".
  • A los label le cambiamos el texto en su propiedad Text .
                                        
  • label4 siga las imagenes 
 





  •  Las cajas de texto en su propiedad name digitamos: "txtradio, textaltura", al botton en su propiedad name digitamos "btncalcular" y su propiedad  Text ="calcular".
  • Lo siguiente es crear las clases y estaran ordenadas dentro de una carpeta:
 crear carpeta: "nombre circulo"

  •  crear clases: con los nombres circulo.vb y cilindro.vb dentro de la carpeta.



Clase Circulo: Para programar  hacemos doble clik en clase Circulo:

Public Class circulo
    Private radio As Double
    ''Creando sobre carga de constructores
    Public Sub New()
        Me.radio = 5
    End Sub

    Public Sub New(ByVal radio As Double)
        Me.radio = radio
    End Sub
    ''Creamos  funciones
    Public Function calculararea() As Double
        Return Math.PI * Math.Pow(Me.radio, 2)
    End Function

    Public Function calcularcircunferencia() As Double
        Return 2 * Math.PI * Me.radio
    End Function
End Class

Clase Cilindro: Heredando las características de circulo.

Public Class cilindro
    ''Inherits: Hereda de una clase base
    Inherits circulo
    Private altura As Double

    Public Sub New(ByVal altura As Double, ByVal radio As Double)
        '' MyBase: Refiere a la Clase Base immediata
        MyBase.New(radio)
        Me.altura = altura
    End Sub

    Public Function calcularvolumen() As Double
        Return Me.altura * MyBase.calculararea
    End Function
End Class


Programamos en el Formulario: declaramos las variables y programamos en el boton btncalcular

Public Class FrmHerencia
    'llamamos a la clase
    Private ocilindro As cilindro
    Private radio As Double
    Private altura As Double

    Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
        radio = CType(txtradio.Text, Double)
        altura = CType(txtaltura.Text, Double)
        ''instanciamos la clase
        ocilindro = New cilindro(altura, radio)
        lblresultado.Text = ocilindro.calcularvolumen
    End Sub
End Class 

Resultado :



Ejemplo de Polimorfismo: Agregamos las clases Perro, Gato, Vaca y un nuevo formulario con el nombre de "FrmAnimal.vb"; Animal en el mismo proyecto, pero en otra carpeta.
  Diseño del formulario



Clase Animal:

 ''LA  CLASE LA CONVERTIMOS EN ABSTRACTA
Public MustInherit Class Animal
    Private altura As Double
    Private peso As Double

 Public Property xaltura() As Double
        Get
            Return Me.altura
        End Get
        Set(value As Double)
            Me.altura = value
        End Set
    End Property

    Public Property xpeso() As Double
        Get
            Return Me.peso
        End Get
        Set(value As Double)
            Me.peso = value
        End Set
    End Property

    'Metodos sin cuerpos
    Public MustOverride Function comer() As String
    Public MustOverride Function decir() As String
End Class


Clase Gato:
Public Class Gato
    Inherits Animal
    Public Overrides Function comer() As String
        Return "RATONES"
    End Function

    Public Overrides Function decir() As String
        Return "MIAU, MIAU , MIAU,..."
    End Function
End Class


Clase Perro :
Public Class Perro
    Inherits Animal
    Public Overrides Function comer() As String
        Return "HUESO"
    End Function

    Public Overrides Function decir() As String
        Return "GUAU GUAU....."
    End Function
End Class


Clase Vaca:
Public Class Vaca
    Inherits Animal


    Public Overrides Function comer() As String
        Return "PASTO"
    End Function

    Public Overrides Function decir() As String
        Return "MUU,MU,MU"
    End Function
End Class


Programamos en el Formulario:

Public Class FrmAnimal
    Private oanimal As Animal
    Private operro As New Perro
    Private ogato As New Gato
    Private ovaca As New Vaca

  Private Sub btnmostrar_Click(sender As System.Object, e As System.EventArgs) Handles btnmostrar.Click

        If rbperro.Checked Then
            oanimal = operro
        ElseIf rbgato.Checked Then
            oanimal = ogato
        Else
            oanimal = ovaca
        End If
        ovaca.xaltura = 20
        ovaca.xpeso = 300
        MessageBox.Show("Altura:" & oanimal.xaltura & vbCrLf _
                        & "Peso:" & oanimal.xpeso & vbCrLf _
                        & "come:" & oanimal.comer & vbCrLf _
                        & "dice:" & oanimal.decir, "mensaje", MessageBoxButtons.OK)
    End Sub
End Class

  • Ejecutamos el Formulario FrmAnimal como nos muestran las imágenes:
  
 
CREANDO INTERFACES 
Mediante las interfaces, puede especificar los métodos que debe implementar un componente sin especificar realmente cómo se implementa el método, mas conceptos puedes ver en: http://msdn.microsoft.com/es-es/library/cc436896%28v=vs.71%29.aspx.
Ejemplo  seguimos las imagenes:

.Agregamos una carpeta  con el nombre "Interfaces", luego creamos las clases  B, A y las intefaces C y D.
. Creando las clases intefaces C y D.

 . luego  paso a crear las clases B , A

. Creamos un formulario con el nombre "FrmInterfaces.vb", y lo diseñamos como muestra la imagen:
 
Interface D:
Public Interface D
    Function IMPRIMIRD() As String
End Interface


Interface C:
Public Interface C
    Function IMPRIMIRC() As String
End Interface


Clase B:
 Public Class B
    Function IMPRIMIRB() As String
        Return "IMPRIMIR A"
    End Function
End Class

Clase A:
Public Class A
    Inherits B
    Implements C, D
    Function IMPRIMIR() As String
        Return MyBase.IMPRIMIRB
    End Function

    Public Function IMPRIMIRC() As String Implements C.IMPRIMIRC
        Return " IMPRIMIR C"
    End Function

    Public Function IMPRIMIRD() As String Implements D.IMPRIMIRD
        Return " IMPRIMIR D"
    End Function
End Class


Programamos en el Formulario

Public Class FrmInterfaces
    Private IA As New A
    Private Sub btnCalcular_Click(sender As System.Object, e As System.EventArgs) Handles btnCalcular.Click
        MessageBox.Show("IMPRIME A: " & IA.IMPRIMIRB & vbCrLf _
& "IMPRIME C: " & IA.IMPRIMIRC & vbCrLf _
& "IMPRIME D: " & IA.IMPRIMIRD)
    End Sub
End Class





 Descargar ejemplo

1 comentarios:

Jonas dijo...

Muchas gracias, me fue de mucha ayuda

Publicar un comentario