菜鸟问个关于接口和继承的问题
现有一个接口 A,B类实现了A接口且继承了C,假如C中有某个方法 test() 如果直接C c =new C();c.test()的话可以调用这个方法,但是想通过接口A :A c = new C(),调用这个方法,怎么做呢?

解决方案 »

  1.   

    A c = new C(),调用这个方法,怎么做呢?
    一样阿,
    A c = new C();
    c.test();就行了。
    运行时多态啊
      

  2.   


    可以吗?这样写好像会报错啊,提示类型A中没有定义test这个方法
      

  3.   

    再加上一个条件,假如test是final类型的,不能在C中重写
      

  4.   

    可以吗?这样写好像会报错啊,提示类型A中没有定义test这个方法
    如果如果接口A中没有定义test()方法,就不行了。
    与final没有关系啊
    我也是个菜菜,只是个人的想法
      

  5.   

    c implements A不就好了吗
      

  6.   


    我的意思是如果不是final类型的话就可以在接口A中定义test(),然后在C中重写这个方法。
    难道现在只能另外定义一个方法,然后在里面调用test吗
      

  7.   

    1楼的有问题,c没有实现A接口,怎么可以用A c= new C()呢?楼主试试 C implements A;B extends C;
      

  8.   

    LZ 
    A c=new C();是错误的,
    因为C没有实现A,不是一个A
    故不能在A中调用C的方法
    可以改成C实现A,并且A中要有C的方法
      

  9.   

    楼上都辛苦了,是我题目疏忽写错了,现更改:现有一个接口 A,B类实现了A接口且继承了C,假如C中有某个方法 test() 如果直接B b =new B();b.test()的话可以调用这个方法,但是想通过接口A :A b = new B(),调用这个方法,怎么做呢?
    谢谢大家了。
      

  10.   

    B继承A然后实现C
    A中要有test();方法,然后可以调用 b.test();