帮忙解决一个java题 10

编译并运行以下程序,以下描述哪个选项是正确的(C)1.classA{2.protectedbooleanequals(){3.returnsuper.equals();}... 编译并运行以下程序,以下描述哪个选项是正确的( C )
1. class A{
2. protected boolean equals(){
3. return super.equals();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
C、行2出错,不能成功编译 D、不能成功编译,行3出错

答案为什么是C
展开
 我来答
在大别山看月亮的下弦月
2009-04-16 · TA获得超过789个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:265万
展开全部
你是不是写错了? Object类没有equals()方法 只有equals(Object obj)方法。如果没写错的话 答案应该是D。
如果是
1. class A{
2. protected boolean equals(Object ){
3. return super.equals(obj);}
4. }
的话答案是C 出错理由是 子类 在重写父类方法时不能缩小访问权限。因为在Object类当中 equals(Object obj)方法是public的。
月下烟客
2009-04-16
知道答主
回答量:42
采纳率:0%
帮助的人:0
展开全部
不对吧,我怎么感觉答案是D啊,调用super.equals()方法的时候需要传递参数的啊。
1, 行2实际上是不会出错的,因为这里的equals方法算是A类的自有方法,因为参数类型不同。Object类的equals方法是有参数的。这里算是重载。如果把这个方法加上参数Object o的话,行2就出错了。因为子类的访问类型不能弱与父类。
2, 因为Object类的equals方法是有参数的所以这里调用super的equals方法要报错的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
feihaiwuxian
2009-04-16 · TA获得超过103个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:106万
展开全部
我也觉的答案是D,如果你的题目没错的话。
因为第2行已经算是重载了,因此没错第3行中Object没有equals()这个方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酒里香
2009-04-16 · TA获得超过409个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:164万
展开全部
C.因为你用super调用父类方法时,方法的修饰权限必须大于父类,用protected 限制该方法显然不对,应该用public修饰。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Foxcoming
2009-04-16 · TA获得超过692个赞
知道小有建树答主
回答量:718
采纳率:0%
帮助的人:821万
展开全部
C

因为Class A继承java.lang.Object。其中包含一个函数: public boolean equals (object target) ;
因此不能再定义protected重载。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式