🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #26942

Re: ¿Simular herencia multiple?

#26942
From: Juan Gonzalo de Silva Medina
Date: Thu, 12 Nov 1998 00:00
86 lines
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-mail
References: <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