Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Consulta sobre definicion de objetos

Estas en el tema de Consulta sobre definicion de objetos en el foro de .NET en Foros del Web. Hola compas, estoy leyendo un libro sobre C# para principiantes. Todo venía bien, definiendo objetos así: MiClase objeto = new MiClase; pero de buenas a ...
  #1 (permalink)  
Antiguo 13/01/2016, 00:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 66
Antigüedad: 15 años, 6 meses
Puntos: 1
Consulta sobre definicion de objetos

Hola compas,
estoy leyendo un libro sobre C# para principiantes. Todo venía bien, definiendo objetos así:
MiClase objeto = new MiClase;
pero de buenas a primeras cambió en algunas situaciones la forma de definir objetos sin dar ninguna explicación, así:
MiClase objeto = new ClaseDerivada;
Quisiera investigar sobre el tema pero no se como encarar la búsqueda sobre eso en otros libros o en internet. No comprendo con precisión lo que está haciendo. ¿Tiene algún nombre como para que lo pueda buscar?

Última edición por Virtualforos; 13/01/2016 a las 10:13
  #2 (permalink)  
Antiguo 13/01/2016, 16:00
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años
Puntos: 16
Respuesta: Consulta sobre definicion de objetos

Buenas compañero,

Posiblemente, lo que esté haciendo es usar una interfaz, declarando el tipo del tipo de la interfaz, pero realizando la instancia con el nombre de la clase que implementa la interfaz...

Dicho de otra forma...

Tengo la clase MiClase que implementa la interfaz MiInterfaz... Y además, tengo MiClase2 que también implementa dicha interfaz...
Sabiendo ésto, yo puedo hacer lo siguiente en el código:
MiInterfaz oCoche = new MiClase();

O también puede ser, porque en vez de una interfaz, sea una clase "padre"... Esto lo hacemos con la herencia de clases...
https://msdn.microsoft.com/es-es/lib...or=-2147217396

En otros lenguajes, se pueden heredar de múltiples clases, pero en .Net sólo de una, pero, implementar varias interfaces...

Si necesitas cualquier otra cosa... Comenta y lo vamos viendo con la comunidad.


Un saludo compañero!!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #3 (permalink)  
Antiguo 13/01/2016, 18:33
 
Fecha de Ingreso: octubre-2008
Mensajes: 66
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Consulta sobre definicion de objetos

Cita:
Iniciado por Drako_18 Ver Mensaje
Buenas compañero,

Posiblemente, lo que esté haciendo es usar una interfaz, declarando el tipo del tipo de la interfaz, pero realizando la instancia con el nombre de la clase que implementa la interfaz...

Dicho de otra forma...

Tengo la clase MiClase que implementa la interfaz MiInterfaz... Y además, tengo MiClase2 que también implementa dicha interfaz...
Sabiendo ésto, yo puedo hacer lo siguiente en el código:
MiInterfaz oCoche = new MiClase();

O también puede ser, porque en vez de una interfaz, sea una clase "padre"... Esto lo hacemos con la herencia de clases...
https://msdn.microsoft.com/es-es/lib...or=-2147217396

En otros lenguajes, se pueden heredar de múltiples clases, pero en .Net sólo de una, pero, implementar varias interfaces...

Si necesitas cualquier otra cosa... Comenta y lo vamos viendo con la comunidad.


Un saludo compañero!!!
Que amable! Sin embargo leí el link que pusiste y no habla específicamente de esto. Efectivamente se trata de clases padre y clases hijo, pero no explica nada sobre esta forma de definir objetos:
MiClase obj = new MiClase();
Entiendo que en la línea de arriba se declara un objeto de tipo MiClase. Pero suponiendo que ClaseDerivada deriva de MiClase, no entiendo lo que sucede aquí:
MiClase obj = new ClaseDerivada();
obj es de tipo MiClase o de tipo ClaseDerivada? menos entiendo las implicancias de esta forma de definir objetos. Lo peor es que desconozco que nombre tiene este tema como para buscarlo en internet o libros.

Última edición por Virtualforos; 13/01/2016 a las 19:01
  #4 (permalink)  
Antiguo 14/01/2016, 11:35
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años
Puntos: 16
Respuesta: Consulta sobre definicion de objetos

Buenas compañero,

A ver.... Esto se llama HERENCIA de clases.
Que es exactamente lo que te pasé en el enlace... Lo único, que como todo en esta vida, no vas a poder buscar siempre la palabra exacta.
Aquí te dejo otra página...
http://www.elguille.info/colabora/NE...erenciaNet.htm


Un saludo compañero.
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #5 (permalink)  
Antiguo 14/01/2016, 12:15
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Consulta sobre definicion de objetos

Cita:
Iniciado por Virtualforos Ver Mensaje
suponiendo que ClaseDerivada deriva de MiClase, no entiendo lo que sucede aquí:
MiClase obj = new ClaseDerivada();
obj es de tipo MiClase o de tipo ClaseDerivada? menos entiendo las implicancias de esta forma de definir objetos.
Para aclarar: Lo que significa esa línea de código es que la variable obj va a ser tratada por el compilador como una variable de tipo MiClase, pero sin embargo la referencia apunta a una instancia de la ClaseDerivada.

O sea, que si MiClase declara un método MiMetodo(), lo vas a poder invocar con la referencia obj, pero los métodos que esté declarados en ClaseDerivada no los vas a poder invocar, porque el compilador no tiene información de que obj sea una instancia de la clase ClaseDerivada.
  #6 (permalink)  
Antiguo 17/01/2016, 15:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 66
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Consulta sobre definicion de objetos

Muchas gracias, además leí un poco más sobre el tema y lo que está haciendo es un upcasting. Saludos!

Etiquetas: net, objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:37.