Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Añadir Propiedades En El Constructor _New Y Herencia
Autor Mensaje
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: 62 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: 62 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: 62 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Herencia De Clases Alaplancha General 7 Sabado, 20 Octobre 2012, 18:10 Ver último mensaje
fabianfv
No hay nuevos mensajes Herencia, Me, Super.. Shell General 5 Martes, 21 Julio 2015, 00:30 Ver último mensaje
Shell
No hay nuevos mensajes Es Posible En Gambas Tener Mas De Un Const... v3ctor General 3 Jueves, 08 Junio 2017, 19:46 Ver último mensaje
jguardon
No hay nuevos mensajes Herencia Entre Clases Shell General 8 Lunes, 12 Febrero 2018, 14:25 Ver último mensaje
jsbsan
 

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


 
Lista de permisos
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



  

 

cron