interface A{}
interface B{}
interface C extends A,B{}
class A1 implements A{}
class B1 implements B{}
class C1 implements C{}
C1类就继承了A1,B1了吗? 
使用A1对象的地方,也就可以使用C1的对象吗? 
这个问题解决不了么??

解决方案 »

  1.   

    C1类就继承了A1,B1了吗? 错
    使用A1对象的地方,也就可以使用C1的对象吗? 错
      

  2.   

    就是想在使用A1,B1对象的地方,也就可以使用C1的对象
      

  3.   

    那就这样吧
    interface A1 extends A{} 
    interface B1 extends B{} 
    class C1 implements A1,B1{}
      

  4.   

    http://hi.baidu.com/linux_zss/blog/item/dd632a9bdd7a35b4c9eaf4ff.html
    我在这看的       没看懂,
    他说的是不是能够通过接口能实现C1类 同时继承 没有关系的 A1和B1两个类,实现使用父类A1或B1对象的地方  也可以使用子类C1的对象
      

  5.   

    哈哈哈哈哈哈哈。。
    楼主去看看java基础吧,只有有了一定的基础,再来问自己不明白的东西,这样才能更快的学习,提高自己。
      

  6.   

    是说接口可以多继承,java糊弄人的说法,lz当真了
      

  7.   

    看你上面的描述,A1类实现了A接口,B1类实现了B接口,C1类实现了A,B,C接口,但C1并没有继承A1类,也没有继承B1类,所以C1类和A1类,C1类和B1类之间没有继承关系,C1类和A1类的关系是他们都是A接口的实现类,C1类和B1类的关系是他们都是B接口的实现类.使用A1,B1对象的地方不可以使用C1对象.
      

  8.   

    你哈利波特系列啊?? 我正看着呢!!!
    没看懂,
    interface A1 extends A{} 
    interface B1 extends B{} 
    class C1 implements A1,B1{} 
    这样写  在使用A1对象的方法中不允许使用C1的对象啊!!
      

  9.   

    C1 extends A1 implements C
      

  10.   

    lovecj6185
    理论上可以
    能给个例子吗?
      

  11.   

    interface A{} 
    interface B{} 
    interface C extends A,B{}你这个C接口不就是同时继承了接口A和接口B吗
    这就是多继承阿
      

  12.   

    不好意思
    你那个网址的东东太长了,呵呵简单的说吧
    只有接口可以多继承
    比如
    interface C extends A,B{} 类只能单继承
    (排除其他变相的多继承)
    class c extends A{}但是类可以实现多个接口
    比如
    class C1 implements A1,B1{} 
      

  13.   

    JAVA中没有多继承,而用接口“实现了多继承”!一个类或是可以同时实现多个接口!(就相当于C++里一个类同时继承了多个类!)
    指的是这个(伪代码):
    public class 你 implements 妈妈的好儿子,单位的好同事,党的好儿女
    {}反过来一个接口可以有多个实现(伪代码):
    public class 你 implements 人
    {}
    public class 我 implements 人
    {}
    public class 他 implements 人
    {}
      

  14.   

    public class MyDaoImpl  extends BaseDao implements IMyBiz,IMyBaseDao(){}
      

  15.   

    Java不支持多继承,接口只是一个类似机制,楼主是从学C++转过来的吧?那你就要认真理解Java的机制,否则,总用C++的思路使用Java,你会很痛苦.........
      

  16.   

    用策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 策略模式的好处在于你可以动态的改变对象的行为。 
    设计原则是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口(c++z中可以用虚类),然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。下面是一个例子。 
    /* 
    这是一个表现僧人和道士的程序,僧人光头,使用棍子做武器,道士长小胡子,使用拂尘作武器 
    */ 
    package strategy; 
    //处理长相接口 
    interface LooksBehavier 

    public void display(); 
    } //处理所使用的武器接口 
    interface WeaponBehavier 

    public void useWeapon(); 

    //角色基类 
    class Role { 
    public int heght; //身高 
    public int sex; //性别 
    public WeaponBehavier weapon; //处理武器接口的实例 
    public LooksBehavier looks; //处理长相的接口的实例 
    public void display() //显示长相 

    looks.display(); 

    public void weapon() //设置所使用的武器 

    weapon.useWeapon(); 

    } //道士长相类,实现了长相接口 
    class TaoistBehavier implements LooksBehavier 

    public void display() //实现接口函数 

    System.out.println("I''m a taolist with long white goatee"); 
    } } //和尚长相类,实现了长相接口 
    class BonzeBehavier implements LooksBehavier 

    public void display() //实现接口函数 

    System.out.println("I''m a Bonze with no hair"); 
    } } //道士武器类,实现了处理武器接口 
    class TaoistWeapon implements WeaponBehavier 

    public void useWeapon() //实现了处理武器接口函数 

    System.out.println("My weapon is horsetail whisk");; 

    } //和尚武器类,实现了处理武器接口 
    class BonzeWeapon implements WeaponBehavier 

    public void useWeapon() //实现了处理武器接口函数 

    System.out.println("My weapon is truncheon");; 

    } //道士 
    class Taoist extends Role 

    public Taoist() 

    looks = new TaoistBehavier(); 
    weapon = new TaoistWeapon(); 

    } //和尚 
    class Bonze extends Role 

    public Bonze() 

    looks = new BonzeBehavier(); 
    weapon = new BonzeWeapon(); 

    public void changeWeapon() 

    weapon = new TaoistWeapon(); 
    System.out.println("change weapon"); 


    public class RoleBase{ 
    public static void main(String [] arg) 

    Taoist taoistObj = new Taoist(); 
    Bonze bonzeObj = new Bonze(); 
    taoistObj.display(); 
    taoistObj.weapon(); 
    bonzeObj.display(); 
    bonzeObj.weapon(); 
    bonzeObj.changeWeapon(); //改变和尚使用的武器 
    bonzeObj.weapon(); 

    } 成功执行后的输出为: 
    I''m a taolist with long white goatee 
    My weapon is horsetail whisk 
    I''m a Bonze with no hair 
    My weapon is truncheon 
    change weapon 
    My weapon is horsetail whisk  
    文章出处:http://www.diybl.com/course/3_program/java/javajs/200838/103114.html
      

  17.   

    class Test implements A,B,C 就是多继承的表现
      

  18.   

    楼主没有真正理解 java 多继承意义java 通过接口达到多继承,是为了让一个类同时具有多种类型,从而达到多态的效果;而不是让类继承其父类已经实现的方法。
    interface A{} 
    interface B{} 
    interface C extends A,B{} 
    class A1 implements A{} 
    class B1 implements B{} 
    class C1 implements C{} 如果创建一个 C1 类型的对象:
    C1 obj = new C1();则 obj 同时也是C类型,而接口C继承了接口A、B,因此它又是A和B接口的一个对象,可以这样写:
    C1 obj = new C1();
    C c = obj;
    A a = obj;
    B b = obj再次强调一下,多继承的根本目的不是为了可以调用父类已经实现的方法而少写几行代码,而是为了多态而增强系统的灵活性