To be honest, you should never really need multiple inheritance. If you find yourself needing to extend multiple types you may need to rethink your design.
On Sun, Apr 24, 2011 at 6:46 PM, RoqueManuel <skaro...@gmail.com> wrote: > Hello guys, > > I'm facing a problem > I need to solve a problem of multi inherence using inner classes. > > So the problem is this. > > I have a Father class and also a Mother class and I need that the > class Son extends from both Father and Mother so Son class can respond > to class to Father Interface and also Mother Interface. So I did the > next code. (What I usually did). > > class Father{ > void m(){ > System.out.println("m()"); > } > } > > interface Mother{ > void n(); > } > > class Son extends Father implements Mother{ > public void n(){ > System.out.println("n()"); > } > } > > So we need to implement the solution using a inner class. And we did > something like this. > > class Father{ > void m(){ > System.out.println("m()"); > } > } > > class Mother{ > public void n(){ > System.out.println("n()"); > } > > class Son extends Father { > void n(){ // Metodo wraper se llama igual e invoca a otro > metodo que > se llama igual. > Mother.this.n(); > } > } > > public static void main(String[] args) { > Mother.Son hijo = new Mother().new Son (); > hijo.m(); > hijo.n(); > } > > } > > This approach is better according to what our teacher explain. And > this solution can be use with more than two classes. > > And I did this. > > > class Human{ > void m(){ > System.out.println("m()"); > } > } > > class Dead{ > void n(){ > System.out.println("n()"); > } > > class InnerDeath extends Human{ > void n(){ > Dead.this.n(); > } > } > } > > public class Vampire { > void o(){ > System.out.println("o()"); > } > > class Dracula extends Dead.InnerDeath{ > Dracula(){ > new Dead().super(); > } > > void o(){ > Vampire.this.o(); > } > } > > public static void main(String[] args){ > Vampire.Dracula dracula = new Vampire().new Dracula(); > dracula.m(); > dracula.n(); > dracula.o(); > } > } > > So what I have is that, I use two inner classes one that extends from > Humand and can acces to Dead attributes and methods, And It's from > this class that extends Dracula and so that Dracula is the result and > can respond to all calls to methods of the other classes. > > Is this the best approach? Do you know a better way to acomplish the > expected result? > I also have another posible solutions to accomplish this problem. I > hope that someone can comment about it. What I want is to have a > solution like a pattern to problems of what I should do if I need two > class (I already have that: inherence plus inner class) three, four, > five and so on. > > Thanks in advance. > > Roque Rueda. > > -- > To post to this group, send email to > javaprogrammingwithpassion@googlegroups.com > To unsubscribe from this group, send email to > javaprogrammingwithpassion+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/javaprogrammingwithpassion?hl=en -- To post to this group, send email to javaprogrammingwithpassion@googlegroups.com To unsubscribe from this group, send email to javaprogrammingwithpassion+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/javaprogrammingwithpassion?hl=en