Article View: es.comp.lenguajes.java
Article #26942Re: ¿Simular herencia multiple?
From: Juan Gonzalo de Silva Medina
Date: Thu, 12 Nov 1998 00:00
Date: Thu, 12 Nov 1998 00:00
86 lines
2576 bytes
2576 bytes
Jonathan Revusky wrote:
>
> Fco Javier Pulido Vaquero wrote:
> >
> > - ¿Cómo podría simular herencia múltiple en Java?
> > [...]
>
> Un modo de simularlo es con las inner classes.
>
> Digamos que tienes clases A y B y quieres que C tenga acceso a la
> implementación protegida de A y B. Una cosa que se puede hacer es hacer
> que C sea una subclase de A pero una inner class de B (o vice versa).
>
> class A {
>
> }
>
> class B {
> class C extends A {
> // El código dentro de C puede invocar todos los métodos de A
> // y de B, ya que está asociado con una instancia de clase B.
> }
> }
>
> Espero que esto ayude.
Jonathan, no lo entiendo. Espero que no sean especificaciones de la 1.2
Yo he hecho:
----------------8<-----------------
class A{
private void mensajeA(){ System.out.println("Soy a"); }
}
class B{
private void mensajeB(){ System.out.println("Soy b"); }
class C extends A{
public void mensajes(){
mensajeA();
mensajeB();
}
}
}
class D{
public static void main(String s[]){
C c = new C();
c.mensajes();
}
}
----------------8<-----------------
Con lo que C extenderia A y B a la vez.
Como respuesta, al compilar obtengo:
prb.java:10: No method matching mensajeA() found in inner class B. C.
mensajeA();
^
prb.java:18: Class C not found in type declaration.
C c = new C();
^
prb.java:18: Class C not found in type declaration.
C c = new C();
^
Tengo claro que los dos ultimos errores son ciertos, ya que C no puede
ser instanciada ya que su ambito se restringe a la clase B.
Pero el primero de ellos parece que dice que C no "extiende" A.
Un poco raro ¿no?
--
Juan Gonzalo de Silva Medina
http://www.caymasa.es/usr/gonzalo
mail:gonzalo@caymasa.es
Powered by Red Hat 5.1 2.0.35 and Java
Technical Details
Message-ID:
<364B6C4E.F2B2D0C7@caymasa.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<72em2t$n0v$1@talia.mad.ibernet.es> <364B1D17.F50D6DAD@jet.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,a73bec53770fedc9 X-Google-Attributes: gid1116f3,public From: Juan Gonzalo de Silva Medina <gonzalo@caymasa.es> Subject: Re: ¿Simular herencia multiple? Date: 1998/11/12 Message-ID: <364B6C4E.F2B2D0C7@caymasa.es> X-Deja-AN: 411254535 Content-Transfer-Encoding: quoted-printable References: <72em2t$n0v$1@talia.mad.ibernet.es> <364B1D17.F50D6DAD@jet.es> X-Accept-Language: en Content-Type: text/plain; charset=iso-8859-1 Organization: EL MONTE Mime-Version: 1.0 Newsgroups: es.comp.lenguajes.java