Autor
|
Tema: Duda sobre hilos (Leído 2,307 veces)
|
arts
Desconectado
Mensajes: 103
|
Tengo una duda en un ejemplo el cual me cuesta mucho ver. No entiendo esta línea que se realiza dentro de static void main(String[] args): Throw hilo = new Mihilo("hilo1"); Se supone que Mihilo tiene un extends de Throw con un constructor que recibe una String y un método run() que muestra un mensaje, y no entiendo como al hacer una instancia del tipo Throw llamada hilo instanciándose a Mihilo y pasándole la cadena funciona. No entiendo porque esto no da problemas, es decir si pongo Int x = new String("pepe"); se entiende que pepe no es un número por lo tanto el espacio de memoria de int es imposible que pueda acceder a String(); y al parecer en el ejemplo de Thorw hilo = new Mihilo("hilo1); no da ningún problema :/ ¿ Por que es compatible esto último ?
|
|
|
En línea
|
|
|
|
egyware
|
Creo que tu pregunta va más dirigida con lo que ocurre con la memoria, más que con la herencia en sí.
Bueno como bien sabes existen los tipos primitivos (int, char, byte) y los objetos. Enfocándonos a los objetos, estos no son como los structs en C. Para partir todos los objetos en realidad son punteros (nada nuevo si vienes de C o C++) entonces sin aplicar ninguna seguridad ni comprobar tipos aplicaciones como estas son completamente validas String a = new Integer(10) o Integer b = new String("hola") esto es debido porque ambos son punteros y su tamaño en memoria son 4 bytes (depende arquitectura el tamaño del puntero). Sin embargo, el área de la memoria que apuntan puede ser diferente. Esto es solo un ejemplo actualmente y desde siempre hacer que un objeto tipo String apunte a un objeto Integer es imposible.
¿Que pasa con la herencia? En la herencia, los objetos de clases padres pueden apuntar (como punteros) a objetos de las clases hijos (pero no viceversa). Esto es debido porque la clase hijo incluye a la clase padre.
Bueno espero que te haya quedado un poco más claro. Si no seria bueno que estudies más sobre encapsulamiento y herencia.
Saludos
|
|
« Última modificación: 5 Noviembre 2013, 18:42 pm por egyware »
|
En línea
|
|
|
|
arts
Desconectado
Mensajes: 103
|
Vaya era algo que me había imaginando pero no estaba seguro, por lo que entiendo que con Throw x; puedo realizarlo porque tengo la herencia(extends Throw) en mi clase Mihilo (clase hija) y con el puedo acceder a todo lo que contiene la clase Throw y con el new Mihilo("hola") ¿ es hacia donde apunta verdad ?, en este caso relleno un espacio de memoria con el constructor de la clase Mihilo ¿ no ?, por lo que con x tendría por un lado acceso a métodos/funciones/variables de Throw y a su vez contiene una cadena del constructor verdad ?.
|
|
« Última modificación: 6 Noviembre 2013, 00:16 am por arts »
|
En línea
|
|
|
|
egyware
|
Si, estás en lo cierto.
Ahora no por ser clase hija, no siempre se podrá acceder a todo de la clase padre. Existen unos modificadores que definen la privacidad del objeto. Si una variable tiene un modificador en private, la clase hija nunca podrá acceder a este valor (por lo menos no directamente).
Espero que te haya quedado claro.
|
|
|
En línea
|
|
|
|
arts
Desconectado
Mensajes: 103
|
Clarísimo Gracias !
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Solucionado]Duda funcionamiento Thread/Hilos
Java
|
NetJava
|
6
|
5,122
|
25 Marzo 2011, 16:29 pm
por NetJava
|
|
|
Benchmark, duda con hilos
Java
|
Tyrz
|
2
|
2,623
|
17 Diciembre 2012, 14:16 pm
por jhonatanAsm
|
|
|
Duda usando hilos, se me queda colgado el programa ?? SOLUCIONADO !!
.NET (C#, VB.NET, ASP)
|
TrashAmbishion
|
3
|
2,827
|
30 Abril 2013, 16:03 pm
por TrashAmbishion
|
|
|
Duda sobre threads (hilos) y semáforos (mutex)
Programación C/C++
|
IngenieroFrustrado
|
3
|
3,004
|
25 Enero 2014, 11:17 am
por amchacon
|
|
|
Dudas sobre hilos
Java
|
m@o_614
|
8
|
4,073
|
15 Febrero 2015, 02:18 am
por 3n31ch
|
|