Añadir Propiedades En El Constructor _New Y Herencia


Objetivo: Añadir Propiedades En El Constructor _New Y Herencia
Hola!.

Ayer fue la primera vez que vi la herencia en Python. Y me volví a hacer algo parecido con gambas.
En Python era un ejemplo con un coche y un coche eléctrico.En ese caso el coche eléctrico heredaba
la clase coche, con alguna propiedad distinta y cambiando alguno de los métodos de la clase padre o principal.

Supongamos una clase A, que hereda de la principal o padre, unas propiedades pero se le añaden mas propiedades al iniciarla.
He hecho este ejemplo sencillo.

Lo que pretendía era, que siendo clases que heredan de una misma clase principal, clase 2 tiene una propiedad mas
que la clase 1. Que es la forma.

Clase Principal
Private hcolor As String

Property Read color As String

Public Sub _new(ssucolor As String)

hcolor = ssucolor

End

Private Function color_Read() As String

Return hcolor

End

Public Function Decir() As String

End


Clase 1
Inherits ClasePrincipal

Static cuenta_clase As Integer

Public Sub _new()

'cuenta_clase += 1 'Aqui solo se hace una vez. No podemos aumentar el contador aqui

End

Public Function Decir() As String

cuenta_clase += 1
Return "Soy el objeto " & cuenta_clase & "º" & " de la clase 1. Mi color es " & Me.color

End


Clase2
Inherits ClasePrincipal

Static cuenta_clase As Integer
Private hforma As String
Property Read forma As String

Public Sub _new(sforma As String)

hforma = sforma

End

Private Function forma_Read() As String

Return hforma

End

Public Function Decir() As String

cuenta_clase += 1
Return "Soy el objeto " & cuenta_clase & "º" & " de la clase 2. Mi color es " & Me.color & " y mi forma es " & Me.forma

End


Y el modulo de inicio.
Public Sub Main()

Dim objeto1, objeto3 As Clase1
Dim objeto2, objeto4 As Clase2

objeto1 = New Clase1("rojo")
objeto2 = New Clase2("azul", "redonda")
objeto3 = New Clase1("verde")
objeto4 = New Clase2("gris", "cuadrada")

Print objeto1.Decir()
Print objeto2.Decir()
Print objeto3.Decir()
Print objeto4.Decir()

End


Por otro lado observareis que no he creado la variable cuenta_clase en la clase principal. Si no en la clase 1 y en la clase 2.
Veréis que el contador funciona perfectamente según creamos un objeto de una clase u otra.

Puede que no este del todo correcto, ya que por practicar una cosa, se olvidan cosas del otro lenguaje.
Sigo sin usar super por ahora.

Os subo el código, para que no tengáis que escribir y veréis el resultado. Uso la de desarrollo.



Saludos


Clases_add_propiedades_nuevas.tar.gz
Descripción:  
Descargar
Nombre del archivo: Clases_add_propiedades_nuevas.tar.gz
Tamaño: 6.1 KB
Descargado: 65 veces
Clases_add_propiedades_nuevas.tar.gz
Descripción:  
Descargar
Nombre del archivo: Clases_add_propiedades_nuevas.tar.gz
Tamaño: 6.1 KB
Descargado: 65 veces
Clases_add_propiedades_nuevas.tar.gz
Descripción:  
Descargar
Nombre del archivo: Clases_add_propiedades_nuevas.tar.gz
Tamaño: 6.1 KB
Descargado: 65 veces

Objetivo: Re: Añadir Propiedades En El Constructor _New Y Herencia
Shell escribió: [Ver mensaje]
Hola!.

Ayer fue la primera vez que vi la herencia en Python. Y me volví a hacer algo parecido con gambas.
En Python era un ejemplo con un coche y un coche eléctrico.En ese caso el coche eléctrico heredaba
la clase coche, con alguna propiedad distinta y cambiando alguno de los métodos de la clase padre o principal.
.....

hace tiempo pregunte y publique algo de esto en el foro

pero parece que no lo usan mucho

la idea era heredando los componentes como
texbox, combobox y los demas añadiendole nuevas funcionalidades
y reduciendo y simplificando el codigo y era casi lo mismo
Inherits para heredar y observer para los eventos
en algun lugar del foro estan los codigos

comento esto por que el tema de las clases y la herencia es algo poco nombrado en el foro

última edición por codificador el Domingo, 09 Febrero 2014, 19:34; editado 1 vez
Perfil MP  
Objetivo: Re: Añadir Propiedades En El Constructor _New Y Herencia
codificador escribió: [Ver mensaje]

comento esto por que el tema de las clases y la herencia es algo poco nombrado en el foro


Pues si a estas alturas no hacemos por aprender algo de POO, la llevamos de colores.
Hay que animarse. Si no es con gambas, con otro lenguaje y luego llevarlo a Gambas.


Saludos

Objetivo: Re: Añadir Propiedades En El Constructor _New Y Herencia
Os recuerdo, la "macro" entrada dedicada a los de patrones de diseño Enlace Patrones de Diseño en Gambas, que mas o menos hice lo que comenta Shell, ejemplos de los patrones de diseño realizado en java, pasados a gambas.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.409s (PHP: -66% SQL: 166%)
Consultas SQL: 48 - Debug off - GZIP Activado