Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Añadir Propiedades En El Constructor _New Y Herencia

Añadir Propiedades En El Constructor _New Y Herencia
Artículo
Responder citando    Descargar mensaje  
Mensaje 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




 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Domingo, 09 Febrero 2014, 13:58 ]
 


Añadir Propiedades En El Constructor _New Y Herencia
Comentarios
Responder citando    Descargar mensaje  
Mensaje 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 
codificador - Ver perfil del usuario Enviar mensaje privado  
codificador [ Domingo, 09 Febrero 2014, 19:33 ]
Responder citando    Descargar mensaje  
Mensaje 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



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Domingo, 09 Febrero 2014, 20:31 ]
Responder citando    Descargar mensaje  
Mensaje 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.



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Domingo, 09 Febrero 2014, 20:54 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron