日期:2014-05-20  浏览次数:20651 次

“Java接口”的多重继承问题
据说一个java类只能通过extends继承自单一的父类,今天在看书的时候发现,通过interface定义的接口,却可以通过extends关键字继承自多个其他的接口,求解释。

public interface B {
void b();
}

public interface C{
void c();
}

public class Test implements D{
    public void b(){System.out.println("b");}
    public void c(){System.out.println("c");}
    public static void main(String[] args){
Test t = new Test();
t.b();
t.c();
    }
}

可以正确运行
------解决方案--------------------
java的设计是单继承可以多implements

即,你可以implements多个接口,但是继承只能一个。

所以你可以用多实现来解决多继承问题
------解决方案--------------------
java中的类只能单继承,多实现
接口可以继承多个接口
下面是个例子

public interface AAA extends Cloneable,Runnable{
}

public class CCC extends Object implements AAA,Scanner{

@Override
public void run() {
// TODO Auto-generated method stub

}
@Override
public Symbol next_token() throws Exception {
// TODO Auto-generated method stub
return null;
}
}

------解决方案--------------------
跟 c++ 的弗雷多继承联系起来
java父类 的单继承不会像 c++ 那么复杂, 而且接口的多继承又能弥补父类单继承的不足
------解决方案--------------------
/*单继承,多实现*/