Herencia multiple

20/11/2007 - 09:04 por José Mª Toro Bermejo | Informe spam
Hola chic@s.
Tengo un producto de terceros del que realizo una herencia multiple de dos
de sus clases.
public class Clase : ClaseA, ClaseB
{
};

Con la palabra base accedo a los metodos y miembros de ClaseA pero no a los
de la ClaseB.
¿Como puedo acceder a los metodos bases de la ClaseB?

Gracias y un saludo

Preguntas similare

Leer las respuestas

#26 Carlos M. Calvelo
23/11/2007 - 01:02 | Informe spam
Hola Juan Carlos,

On 22 nov, 20:10, Juan Carlos Paramá
wrote:
Para la herencia es necesario que existe alguna funcionalidad que
heredar (aunque sea el no hacer nada). Una interfaz no
proporciona ninguna funcionalidad y por lo tanto no se puede hablar de
herencia.



En este mismo hilo ya se ha establecido que se pueden
heredar interfaces. También sin proporcionar una implementación.


>> Sin embargo, una clase puede implementar más de una interfaz.

>Puede heredar más de una interfaz. Y después se deberán
>proporcionar sus implementaciones.

No. A menos que quieras redefinir todo el lenguaje de la programación
orientada a objetos, se heredan funcionalidades, no interfaces (en el
sentido de la teoria).



Ya me voy a cansar de repetirlo:
El concepto de 'herencia de interfaz' (interface inheritance) seguro
que me lo he sacado yo de la manga.
Pero no recuerdo haber leido sobre 'functionalities inheritance'.


>> Simple, implementa una interfaz
>> class ImplDerivedClass: BaseClass, IFace1 { }

>No estoy de acuerdo. Aquí se heredan dos interfaces
>y solo la implementación de la primera.

Aquí es donde cambias el sentido del concepto interfaz para utilizar el de
la teoria, pero en ese caso también estas
equivocado, ya que anteriormente mencionabas:



No cambio el sentido de ningún concepto. Una clase tiene una
interfaz y una implementacion. Una 'interface' solo tiene interfaz.
O sea que de BaseClass heredamos una interfaz con su implementación
y de IFace1 heredamos otro interfaz.


>> Herencia Ejemplo
>> Ninguna
>> class ClassA { }

>De acuerdo.

Lo cual, con la misma interpretación, es falso.

ClassA implementa una interfaz y hereda una implementación (funcionalidad),
ambas de Object.



He considerado que no añade nada a la discusión tener en cuenta
que en este caso se hereda de Object.
Por qué? Pues porque también se da este ejemplo que sería
exactamente el mismo caso:
Simple
class DerivedClass: BaseClass { }







Si no tenemos en cuenta que se hereda de Object estoy de acuerdo
con el ejemplo.
Si sí se considera eso entonces ya he comentado el ejemplo
equivalente y ese comentario no concuerda totalmente con el
que tu das aquí arriba.



En fin, igual todavía he causado más confusión, pero que el principal
argumento sea
cambiar el significado de las palabras no me parece un buen argumento.




Yo no veo como he cambiado el significado de nada.
En cuanto a lo de la clase Object entiendo que pude haber causado
confusion al no mencinarlo. Mis disculpas por ello si es así.

Pero recuerda que todo empieza con que ' la gran fuente
de conocimientos' msdn dice:

>> Herencia Ejemplo
>> Ninguna
>> class ClassA { }




Saludos,
Carlos
Respuesta Responder a este mensaje
#27 Carlos M. Calvelo
23/11/2007 - 01:44 | Informe spam
corrección:

confusion al no mencinarlo. Mis disculpas por ello si es así.



He querido decir "mencionarlo"


Pero recuerda que todo empieza con que ' la gran fuente
de conocimientos' msdn dice:



O por lo menos... eso dice Daniel.


> >> Herencia Ejemplo
> >> Ninguna
> >> class ClassA { }




Saludos,
Carlos
Respuesta Responder a este mensaje
#28 Daniel A. Calvin - Cooperator Team
23/11/2007 - 02:08 | Informe spam
Las frase verguenza ajena, les suena?.

chau gente, que pena.. que gran pena

"Carlos M. Calvelo" escribió en el mensaje
news:
corrección:

confusion al no mencinarlo. Mis disculpas por ello si es así.



He querido decir "mencionarlo"


Pero recuerda que todo empieza con que ' la gran fuente
de conocimientos' msdn dice:



O por lo menos... eso dice Daniel.


> >> Herencia Ejemplo
> >> Ninguna
> >> class ClassA { }




Saludos,
Carlos
Respuesta Responder a este mensaje
#29 Carlos M. Calvelo
23/11/2007 - 10:09 | Informe spam
On 23 nov, 02:08, "Daniel A. Calvin - Cooperator Team"
wrote:
Las frase verguenza ajena, les suena?.




Quien ha puesto este ejemplo Daniel?


Herencia Ejemplo
Ninguna
class ClassA { }

Simple
class DerivedClass: BaseClass { }




La frase "Se te ve el plumero!" Te suena?

"La ignorancia tiene cura pero en combinación con
deshonestidad representa un problema serio."
Te suena?

chau gente, que pena.. que gran pena



Con esta última reacción tuya si que empiezas a dar pena si.
Respuesta Responder a este mensaje
#30 Hernan
23/11/2007 - 11:27 | Informe spam
> >> Simple, implementa una interfaz
> >> class ImplDerivedClass: BaseClass, IFace1 { }

> >No estoy de acuerdo. Aquí se heredan dos interfaces
> >y solo la implementación de la primera.

> Aquí es donde cambias el sentido del concepto interfaz
> para utilizar el de
> la teoria, pero en ese caso también estas
> equivocado, ya que anteriormente mencionabas:

No cambio el sentido de ningún concepto. Una clase tiene
una
interfaz y una implementacion. Una 'interface' solo tiene
interfaz.
O sea que de BaseClass heredamos una interfaz con su
implementación
y de IFace1 heredamos otro interfaz.



Este es un grupo de C# (.NET) por lo que cuando utilizamos
términos que tienen varias acepciones en la industria
o ciencia, la versión que aquí tomamos por defecto es
la que define el lenguaje y la documentación del mismo.
'interface' o su traducción al castellano interfaz
aquí tienen un significado concreto.

Es un grupo de usenet, así que por favor sigamos unas
mínimas normas para evitar las discusiones dialécticas.

Siguiendo este criterio el último párrafo citado es,
por poner un adjetivo que aquí se usa mucho, falso.
Sería válido (y con *enormes* salvedades que ni
siquiera mencionas) si aclararas que tu uso de la
palabra "interfaz" no es la traducción al castellano
de la palabra clave "interface" de C#.

Ahora, si queréis debatir la clasificación que hace
MS, el uso de sus términos, o lo que sea, no hay
problema. Establecéis que lo vais a plantear está
dentro otro dominio (teoría de lenguajes) y listo.

Os doy un ejemplo:

A dice:
"C# es, como Java, un lenguaje de herencia simple
y C++, Python de herencia múltiple."

B dice:
"Sí, pero cuidado! Esa es la clasificación tradicional
que es algo burda. Si queremos ser mas precisos
Java y C# serían lenguajes de herencia múltiple
limitada. En teoría de lenguajes un concepto
importante es la relacion 'objeto es_un tipo'.
Como las 'interface's en C# y Java también son
tipos ... bla, bla, bla..."

Fácil, no?
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida