elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Pregunta sobre herencia en SmallTalk
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta sobre herencia en SmallTalk  (Leído 2,605 veces)
astinx

Desconectado Desconectado

Mensajes: 111



Ver Perfil
Pregunta sobre herencia en SmallTalk
« en: 20 Febrero 2012, 22:32 pm »

Hola, tengo una duda acerca de herencia en SmallTalk.
Supongamos lo siguiente: Tenemos una clase A, con atributos x e y, disponemos de los métodos #x:unValor, #y:otroValor, #x e #y. Es decir de los métodos para establecer y obtener los valores de los atributos. Ahora también hemos sobreescrito el new, de manera que no se pueda hacer referencia a él, algo como:
#new
Código:
^(self error: 'Debe usarse el constructor apropiado en esta clase').

Hemos creado el constructor de esta clase que sería algo como:
Código:
x:unValor y:otroValor
^(super new x:unValor; y:otroValor).

Ahora supongamos que creamos una clase hija B, con el atributo adicional z, y tambien creamos los métodos para obtener y establecer el valor del atributo z. Vamos a crear el constructor. Sobreescribimos el método #new, de la misma manera de antes y creamos el constructor. Quedaria de la siguiente manera:
Código:
x:unValor y:otroValor z:elUltimoValor
^((super x:unValor y:otroValor); z:elUltimoValor).

Mi duda es la siguiente: ¿Como esto puede funcionar?, es decir estamos utilizando un constructor de la clase padre, por lo tanto
Código:
super x:unValor y:otroValor
nos devuelve una instancia de la clase A, y la clase A no tiene porque entender el mensaje z, si bien lo implementa sus hijos, no lo implementa el padre así que no tendría porque conocer ese mensaje.

¿Tienen alguna idea de que podría ser lo que no estoy viendo?, ¿Obvie algo del POO?, ¿Hay algo que hice que no debí haber hecho?, ¿Sobreescribir el #new?

Muchas gracias por detenerse a leer.


En línea

La programación hoy en día es una carrera entre los ingenieros de software intentando construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De momento, el Universo está ganando
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Pregunta Herencia] Los constructores por defecto se Heredan???
Java
christmo 2 5,274 Último mensaje 26 Octubre 2010, 23:10 pm
por christmo
Pregunta sobre herencia y polimorfismo
Programación C/C++
Rodrigosolari 2 2,411 Último mensaje 6 Mayo 2012, 08:51 am
por Rodrigosolari
Duda sobre herencia en C++
Programación C/C++
NekoOs 4 2,418 Último mensaje 18 Septiembre 2012, 00:42 am
por NekoOs
Duda sobre el tema de Herencia en c++
Programación C/C++
maikelowen 3 2,025 Último mensaje 10 Abril 2014, 21:51 pm
por maikelowen
Consulta sobre herencia y cómo proceder
Programación C/C++
Cero++ 6 2,037 Último mensaje 26 Diciembre 2018, 02:29 am
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines