又一道SCJP题,关于overload,override

ttt 2002-01-29 04:50:38
whick of the following methods can be legally inserted in place of the comment //Method Here?

class Base {
public void amethod(int i) {}
}
public class Scope extends Base {
public static void main(String argv[]) {
}
//Method Here
}
A. void amethod(int i) throws Exception{}
B. void amethod(long i) throws Exception{}
C. void amethod(long i) {}
D. public void amethod(int i) throws Exception{}

答案是 B 和 C
为什么??
...全文
28 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lion1978 2002-01-29
A 试图重载Base的amethod,修饰符不一致,抛出的异常不一致。
D 试图重载Base的amethod,抛出的异常不一致。
回复
chengjb 2002-01-29
答案A:overring了父类的方法amethod,但modifier由public->(default),违反了原则(只能增大,不能缩小),错!
答案D:overring了父类的方法amethod,但Exception违反了原则(只能缩小,不能增大),错!
B和C都是overload,与父类的方法无关。
回复
发帖
非技术区
创建于2007-09-28

2.3w+

社区成员

Java 非技术区
申请成为版主
帖子事件
创建了帖子
2002-01-29 04:50
社区公告
暂无公告