C c = new C();
那么c.fun()应该调用哪一个父类的fun()方法?无法给出答案,因此Java语言禁止多重继承。
一个类可以实现多个接口,若同时实现的两个接口中有同一种方法fun(),实现结果会是,实现一个,例如:
public interface AA { public void fun(); }
public interface BB { public void fun(); }
那么cc同时实现AA,和BB的结果为:
public class CC implements AA, BB { public void fun() { // TODO Auto-generated method stub } }
但是如果BB中方法改为了这个:
public interface BB { public String fun(); }
那么在CC中同时实现AA和BB时,会报错,因为这就像是在同一个类中写了两个方法,方法名相同,参数列表相同,返回值不同,这并不是重载(方法名相同,参数类表的顺序,个数不同),所以会报错。一定要注意。