java类继承的父类和实现的接口中可以有相同的方法吗?

答案:可以(此处的相同是指方法名相同,参数列表相同,返回类型相同)

如果子类(接口的实现类),只不过在子类中可以选择重写或者不重写该方法(即便接口要求必须重写接口中所有的方法),先extends,后implement,所以在 implement 的时候该类中已经隐含有了该方法(从父类继承),所以可以选择不重写

如果仅是方法名相同,参数列表相同,返回类型不同则不能,原因和不能用返回值来区分方法重载类似。


 
 
  1. public class InterfaceExtendsOverride extends C implements I{
  2. // @Override
  3. // public void f() {//f()in "XXXX" clashes with f() in "XXX类名",attempting to use incompatile return type
  4. // //extends 已经从 C 继承了一个 int f(),即该类中已经隐含了一个 f(),同一个类中要有同名函数,必须参数列表不同, 显然 void f()不满足该条件,所以编译报错
  5. //
  6. // }
  7. //}
  8. //
  9. //
  10. //class C{
  11. // int f(){return 0;}
  12. //}
  13. //
  14. //interface I{
  15. // void f();
  16. //}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值