以文本方式查看主题

-  课外天地 李树青  (http://www.njcie.com/bbs/index.asp)
--  清心茶舍  (http://www.njcie.com/bbs/list.asp?boardid=21)
----  [原创]Java中方法重写注意事项!  (http://www.njcie.com/bbs/dispbbs.asp?boardid=21&id=866)

--  作者:信管07151
--  发布时间:2010/4/5 15:11:33
--  [原创]Java中方法重写注意事项!

李老师,您好!

下面一题怎么做?谢谢!

Adds to the Beta class to make it compile correctly.

class Alpha{

public void bar(int ... x){ }

public void bar(int x){ }

}

public class Beta extends Alpha{

Place here code;

Place here code;

Place here code;

}

选项 A private void bar (int x){ }

B public void bar(int x){ }

C public int bar (String x){return 1;}

D public Alpha bar(int x){ }

E public void bar (int x,int y){ }

F public int bar (int x){ return x;}

老师我知道B和E是对的,A是错的权限缩小了。

其他选项还有那个是对的?为什么?


--  作者:admin
--  发布时间:2010/4/6 13:34:00
--  回复

我觉得你应该自己上机试一试,不就知道结果了吗?

A权限缩写,报错(Cannot reduce the visibility of the inherited method from Alpha) B正确,乃函数重写 C正确,此非函数重写,应该是重载 D错误,重写函数要求原型一致,重载函数要求返回类型一致(The return type is incompatible with Alpha.bar(int)) E正确,此非函数重写,应该是重载 F错误,理由同D


--  作者:信管07151
--  发布时间:2010/4/7 17:35:49
--  
谢谢!李老师!