Foro sobre Java SE > casteo entre metodos
Hola.
Lo que describes solo es posible por la herencia entre clases.
En java y cualquier lenguaje orientado a objetos puedes de hacer uso de un mecanismo que se llama herencia lo que hace es que la clase que hereda la cual se le denomina hija, contiene todos los métodos y atributos (no privados) de la clase de la cual se esta heredando llamada padre.
Las clases que hacen uso de esto, forman una familia, y da la posibilidad de ver los objetos de esa familia como la clase padre o el ancestro común, por ejemplo en java todos heredan de Object entonces puedes tratar los objetos como si fueran Object así como lo siguiente:
public int ValueInt(Object objValor){
if(objValor instanceof Integer){
return ((Integer)objValor).intValue() ;
}
return Integer.MIN_VALUE;
}
entonces yo lo puedo llamar asi: int b=ValueInt(new Integer(5));
claro no tiene mucho sentido hacer esto y solo es para ejemplificar.
links para ampliar el tema:
http://codejavu.blogspot.com/2013/05/herencia-en-java.html
http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=651:concepto-o-definicion-de-herencia-en-java-programacion-orientada-a-objetos-ique-es-ejemplos-cu00684b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
http://www.mundojava.net/la-herencia-en-java.html?Pg=java_inicial_4_4_6.html
Buena explicación y documentación de la herencia, gracias de parte de todos a los que pueda serle útil. Pero el que un objeto entre en un método y el método devuelva un objeto diferente... no significa obligatóriamente que este usando herencia. Puede ser que dentro del método se cree un objeto nuevo que es el que se devuelve.
Lo suyo sería que Daniel Telón pusiera el código del método al que se refiere, y así podríamos ver efectivamente si se trata de herencia, o simplemente se esta creando un nuevo objeto dentro del método. Así que daniel, si lees esto, estaría bien nos facilitaras el método del que estas hablando, así podríamos confirmarte de forma segura de lo que se trata.
Bueno un saludo para todos!!
loderain, Daniel escribía:
Al hacer la invocación envío un objeto de determinada clase; y cuando lo recibo en el metodo, lo recibo como un objeto de otra clase.
Creo que jhosep y yo interpretamos eso como que la llamada al método incluye como parámetro un objeto de la clase AA, y el cuerpo del método lo trata como si fuera de clase A (siendo AA una clase que extiende A). No lo hemos entendido como que el problema surja cuando el método retorna.
Va va, creo que antes lei demasiado rápido, tienes razón, no es en el retorno es dentro del cuerpo del método, bien bien, perdón por la confusión ;) Un saludo
@loderain, pues como dijo @rickiees, se entiende que Daniel habla sobre el parametro, y en eso base mi explicación, ahora si quiso decir otra cosa, por favor daniel pon codigo, que lo de adivino en javahispano no se nos da XD.
pues poniéndose un poco denso, podría tambien estar hablando de Genericos
class Lista<T>{
public void add(T elemento){
---
}
}
Lista <Integer>L=new Lista<>();
L.add(new Integer(5));
..jaja ..
y bueno para los que pregunta, por favor denle seguimiento a sus preguntas(ya sea para dar las gracias o pedir una mejor explicación). y lo de agradecer de cajón por lo menos a mi me gusta y motiva saber que mis respuestas fueron de ayuda,
Hola, tengo una duda con una invocación a un metodo. Al hacer la invocación envío un objeto de determinada clase; y cuando lo recibo en el metodo, lo recibo como un objeto de otra clase.
Como se le llama a esta funcionalidad?
Habra algo de documentacion para esto?