“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++ 那么复杂, 而且接口的多继承又能弥补父类单继承的不足
------解决方案--------------------/*单继承,多实现*/