弄清Java中方法覆盖时的规则

本文通过一个具体的Java代码示例,详细解析了子类如何正确覆盖父类的方法,并探讨了访问修饰符、参数列表及返回类型等方面的要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天浏览网页,无意间看到这样一道题:

class A{

  protected int method(int a){

     return 0;

  }

}

which two are valid in a class that extends A?

A:public int method(int a){return 0;}

B:private int method(int a){return 0;}

C:private int method(long a){return 0l;}

D:public short method(int a){return 0;}

E:static protected int method(int a){return 0;}

 

我用Eclipse敲了一遍,正确的是AE,但是C没有明确报错,只是一个警告,分析:

在对父类方法进行覆盖时,不能缩小父类方法的访问权限,因此A对B错

C实际上没有对A的method方法进行覆盖,应为他们的参数列表不同

D不能改变覆盖的方法的返回值,D错

E正确

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值