有人说可以这样:
 newClass implements interface1, interface2 {
Class1 obj1;
Class2 obj2;method1{
obj1.method1;
}method2 {
obj2.method2;
}} 用聚合的方法貌似可以,不过看起来很丑!而且一点也不面向对象啊?子类为什么要聚合多个父类呢???

解决方案 »

  1.   

    其实现在越来越不推荐继承了,继承会增强类之间的依赖,推荐用组合,也就是在一个类创建另一个类的引用,适配器模式或者jdk动态代理应该可以解决继承的问题
      

  2.   

    走路和飞行是2个类如果某个动物既可以走路,又可以飞行,那怎么办?多重继承还是有其优点的!java里面就采用 Warkable 和 Flayable 2个接口来解决了!
      

  3.   

    兄弟们,可能我表达有误。
    “Java不能多重继承类(实现),如何解决代码复用的问题”???
    用聚合的办法可以,不过子类拥有两个父类的引用似乎有些丑陋
      

  4.   

    弱弱的问一声ls,java怎么可以让子类拥有两个父类?
      

  5.   


    java里面只能从一个父类继承
    如果你的类需要2种特性,可以实现2个接口
      

  6.   

    大家看过美剧《英雄》(Heros)没?FlyMan
    {
    fly()
    }FireWoman
    {
    fire()
    }CheerLeader
    {
    FlyMan dad;
    Firewoman mum;fly()
    {
    dad.fly();
    }fire()
    {
    mum.fire();
    }
    }呵呵,看起来,Cheerleader并没有继承她父母的超能力,
    当别人让她.fly的时候,她就说,来老爸fly一个。
    当别人让她.fire的时候,她就说,来老妈fire一个。大家就当我纯扯淡,我只想说,这样确实有些丑陋。
      

  7.   

    lz为什么说是继承呢?明明就是实现了两个接口。而且,实现的是接口。接口不是类。所以,也不是什么父类。接口就一套规范。说白了就是抽象方法和常量。为什么说丑陋?哪里丑陋,只看外观吗?直觉吗?你用JAVA多久?什么可以随便的说它丑陋?
      

  8.   

    在OO中,设计的首先考虑是组合而非继承,代码复用并非因为继承机制。继承带来的好处是使子类对象能够向上转型,继而可以使用父类对象引用子类对象,产生多态行为,这里才是代码复用的关键之处,在OO中“对接口编程”就是这样,用父类对象(或者接口)来产生构造关系,根据具体引用的子类对象来产生不同行为。再说下多继承的问题,多继承的好处很多,就如楼主的“拉拉队员”的例子,但是如果她父亲和母亲是继承于一个父亲(近亲结婚,这样才能基因变异嘛),或者再往上几代,那么这位“拉拉队长”就同时拥有了两个爷爷,并且是相同的。这就是典型的“菱形问题”,在实际的开发中,这会导致很多错误和不可估计的结果(假如有很庞大的继承树)。
    所以java舍弃了多继承,因为这个东西带来的坏处>好处。然而所谓的好处,也可以通过接口的机制来得到更完美的解决。
    但是如果非要直接继承于两个或者多个类(非接口),那么有什么办法没?答案是:没有
    但是,在OO设计中,这样的问题视乎解决的目标,比如,有个类C,他需要非别能被向上转型为A和B,因为现在有两个方法
    fa(A a),fb(B b),我们想要复用这两个方法。
    那么一个很好的解决办法是“内部类”,因为内部类是可以访问外围类一切对象的。
    class C extends A{
      B getB(){
         return B(){
         };
      }
    }
    C c = new C();
    fa(c);
    fb(c.getB);当然,如果非要楼主说的那样不“丑陋”,要明确的让拉拉队长和塔父母分别有个“is-a”的关系,很遗憾,这个目标不能达到。