Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Duda Con Herencia En Gambas3
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Duda Con Herencia En Gambas3 
 
Buenas noches compañeros!, estoy probando la Herencia de gambas3 y luego de buscar un poco en google me surgió una duda, tengo la siguiente clase:

' gambas class file

Private $nombre As String
Private $apellido As String
Private $edad As Integer
Private $ci As Integer
Private $nacionalidad As String


Public Sub _new(nombre As String, apellido As String, edad As Integer, ci As Integer, nacionalidad As String)
  
  $nombre = nombre
  $edad = edad
  $ci = ci
  $nacionalidad = nacionalidad
  $apellido = apellido
  
End


Property Nombre As String

Private Function Nombre_Read() As String

  Return $nombre

End

Private Sub Nombre_Write(Value As String)

  $nombre = Value

End


Property Edad As Integer

Private Function Edad_Read() As Integer

  Return $edad

End

Private Sub Edad_Write(Value As Integer)

  $edad = Value

End


Property Ci As Integer

Private Function Ci_Read() As Integer

  Return $ci

End

Private Sub Ci_Write(Value As Integer)

  $ci = Value

End


Property Nacionalidad As String

Private Function Nacionalidad_Read() As String

  Return $nacionalidad

End

Private Sub Nacionalidad_Write(Value As String)

  $nacionalidad = Value

End


Property Apellido As String

Private Function Apellido_Read() As String

  Return $apellido

End

Private Sub Apellido_Write(Value As String)

  $apellido = Value

End


Quiero que esta clase sea abstracta, y que no se puedan crear objetos con ella ya que voy a heredar los datos a una clase Estudiante, en Java existe la clase reservada Abstract pero acá creo que no    jaja así que creo la siguiente clase:

' gambas class file

Inherits Persona

Private $codigo As Integer

Public Sub _new(codigo As Integer)
  
  $codigo = codigo
  
End

Property Codigo As Integer

Private Function Codigo_Read() As Integer

  Return $codigo

End

Private Sub Codigo_Write(Value As Integer)

  $codigo = Value

End

Public Function ToString() As String
  
  Return "Nombre: " & Me.Nombre & " Apellido: " & Me.Apellido & " Edad: " & Me.Edad & " CI: " & Me.Ci & " Nacionalidad: " & Me.Nacionalidad & " Código: " & Me.Codigo
  
End

 

A lo que ahora viene mi duda, en el constructor en Java es necesario pasarle todos los datos que va a heredar de la clase padre que en este caso serian nombre,apellido,edad,ci y nacionalidad y inicializarlos con el super de la siguiente forma super(nombre,apellido,edad,ci y nacionalidad) lo cual el código quedaria de la siguiente forma si fuera Java:

Public Sub _new(nombre As String, apellido As String, edad As Integer, ci As Integer, nacionalidad As String, codigo As Integer)
  
  Super(nombre, edad, ci, nacionalidad, apellido)
  $codigo = codigo
  
End

Si lo hago de esta forma cuando voy a crear un objeto de la clase Estudiante me muestra repetidos todos los atributos a lo que saque la conclusión de que en Gambas3 el constructor no hay que pasarle nada y que el Inherits que le pase con el nombre de la clase padre se encarga de heredar todo y no tener que estar poniendo en el constructor atributo por atributo de la clase padre ni inicializarlos con el super como se hace en Java. A lo que yo me pregunto ahora, esta bien lo que estoy diciendo? o estoy cometiendo algún error? soy un poco nuevo en Gambas3 así que si alguien me puede ayudar con el tema se lo agradezco, muchas gracias por la ayuda, saludos a todos

P/D dejo la clase Main() que use para testear:

' gambas module file

Private alumno As Alumno

Public Sub Main()
  
  Dim nombre As String = "Pepe"
  Dim apellido As String = "Grillo"
  Dim edad As Integer = 32
  Dim ci As Integer = 4855776
  Dim nacionalidad As String = "Chino"
  Dim codigo As Integer = 1
  alumno = New Alumno(nombre, apellido, edad, ci, nacionalidad, codigo)
  Print alumno.ToString()
End

 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Duda Con Herencia En Gambas3 
 
sulky16v2:
Citar:
Java existe la clase reservada Abstract pero acá creo que no


Efectivamente, en gambas es más simple, solo hay herencia, no hay diferencia entre clase "abstract" ni clase "interface", solo hay clase Padre.

El método _new funciona como lo programes. Si quieres le pones parametros o nó,  o incluso lo puedes dejar con parámetros no definidos usando "..."

Mirate estos enlaces y ejemplos:
http://cursogambas.blogspot.com.es/...-una-clase.html
http://cursogambas.blogspot.com.es/...-hacer-una.html
http://cursogambas.blogspot.com.es/...-numero-de.html
http://cursogambas.blogspot.com.es/...ew-compare.html
http://cursogambas.blogspot.com.es/...s-inherits.html
http://cursogambas.blogspot.com.es/...y-herencia.html
http://cursogambas.blogspot.com.es/...morfismo-i.html

Y los ejemplos de patrones de diseño POO
http://www.cursogambas.blogspot.com.es/p/indice.html
 




===================
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
Responder citando   Descargar mensaje  
Mensaje Re: Duda Con Herencia En Gambas3 
 
jsbsan escribió: [Ver mensaje]
sulky16v2:
Citar:
Java existe la clase reservada Abstract pero acá creo que no


Efectivamente, en gambas es más simple, solo hay herencia, no hay diferencia entre clase "abstract" ni clase "interface", solo hay clase Padre.

El método _new funciona como lo programes. Si quieres le pones parametros o nó,  o incluso lo puedes dejar con parámetros no definidos usando "..."

Mirate estos enlaces y ejemplos:
http://cursogambas.blogspot.com.es/...-una-clase.html
http://cursogambas.blogspot.com.es/...-hacer-una.html
http://cursogambas.blogspot.com.es/...-numero-de.html
http://cursogambas.blogspot.com.es/...ew-compare.html
http://cursogambas.blogspot.com.es/...s-inherits.html
http://cursogambas.blogspot.com.es/...y-herencia.html
http://cursogambas.blogspot.com.es/...morfismo-i.html

Y los ejemplos de patrones de diseño POO
http://www.cursogambas.blogspot.com.es/p/indice.html


Muchas gracias Jsbsan, tus ejemplos me han servido de mucho al igual que tu blog que antes de entrar al foro yo ya era usuario de el, un saludo grande.
 



 
 
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 Emulando La Herencia Multiple jsbsan General 3 Martes, 03 Diciembre 2013, 12:29 Ver último mensaje
jsbsan
No hay nuevos mensajes Herencia, Me, Super.. Shell General 5 Martes, 21 Julio 2015, 00:30 Ver último mensaje
Shell
No hay nuevos mensajes Duda Sobre El IDE Gambas3 En El Modo Depur... gambafeliz General 4 Domingo, 24 May 2020, 12:21 Ver último mensaje
gambafeliz
 

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