答案:可以(此处的相同是指方法名相同,参数列表相同,返回类型相同)
如果子类(接口的实现类),只不过在子类中可以选择重写或者不重写该方法(即便接口要求必须重写接口中所有的方法),先extends,后implement,所以在 implement 的时候该类中已经隐含有了该方法(从父类继承),所以可以选择不重写
如果仅是方法名相同,参数列表相同,返回类型不同则不能,原因和不能用返回值来区分方法重载类似。
public class InterfaceExtendsOverride extends C implements I{
// @Override
// public void f() {//f()in "XXXX" clashes with f() in "XXX类名",attempting to use incompatile return type
// //extends 已经从 C 继承了一个 int f(),即该类中已经隐含了一个 f(),同一个类中要有同名函数,必须参数列表不同, 显然 void f()不满足该条件,所以编译报错
//
// }
//}
//
//
//class C{
// int f(){return 0;}
//}
//
//interface I{
// void f();
//}