Foro de elhacker.net

Programación => Java => Mensaje iniciado por: drakolive en 13 Junio 2008, 04:34 am



Título: duda de extends [si se puede heredar varias veces]
Publicado por: drakolive en 13 Junio 2008, 04:34 am
porquie si compilo el siguiente codigo si es correcto??
Código
  1. public class Num{
  2.  
  3.  
  4. }
  5.  
  6. class A extends Num{
  7.  
  8. }
  9.  
  10. class B extends A{
  11.  
  12. }
  13.  

Tenia entendido que la herencia multiple en java no se podia, pero al compilar eso me genera 3 archivos .class porque?
tenego esa duda.


Título: Re: duda de extends [si se puede heredar varias veces]
Publicado por: Casidiablo en 13 Junio 2008, 16:03 pm
No da error porque es correcto. Una cosa es la herencia multiple, en la que de un solo tajo heredas propiedades de dos o más clases, y otra cosa es lo que pones ahí. En este caso, NO es herencia múltiple, ya que solo heredas UNA clase al principio, y otra al FINAL, pero no al mismo tiempo.

Y cuando compilas te salen 3 .class, porque tienes tres clases: Num, A y B.

Un saludo!


Título: Re: duda de extends [si se puede heredar varias veces]
Publicado por: sirdarckcat en 17 Junio 2008, 03:27 am
FYI
Citar
Código
  1.  
  2.    Class Other
  3.    { public Other(int value) { ... }
  4.  
  5.     public void whatever()
  6.     {...
  7.     }
  8.    }
  9.  
  10.  
Código
  1. Interface OtherInterface
  2. { void whatever();
  3. }
Código
  1. class OtherChild extends Other implements OtherInterface
  2. { public OtherChild (int value){ super(value); }
  3. }
Código
  1. Class ParentChild extends Parent implements OtherInterface
  2. { public ParentChild(...) { child = new OtherChild(...); ... }
  3.  
  4. public void whatever() { child.whatever(); }
  5.  
  6. private final OtherInterface child;
  7. }
So, in this class we have merged the actual implementations of two other classes, Parent and Other without modifying either class. This is general multiple inheritance. In Java we needed to define and implement interfaces and use delegation to an object of one of the classes to achieve this.

++
http://pclc.pace.edu/~bergin/patterns/multipleinheritance.html