帮忙解决一个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 展开
1. class A{
2. protected boolean equals(){
3. return super.equals();}
4. }
A、编译通过运行无异常 B、编译通过但运行时出错
C、行2出错,不能成功编译 D、不能成功编译,行3出错
答案为什么是C 展开
展开全部
你是不是写错了? 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的。
如果是
1. class A{
2. protected boolean equals(Object ){
3. return super.equals(obj);}
4. }
的话答案是C 出错理由是 子类 在重写父类方法时不能缩小访问权限。因为在Object类当中 equals(Object obj)方法是public的。
展开全部
不对吧,我怎么感觉答案是D啊,调用super.equals()方法的时候需要传递参数的啊。
1, 行2实际上是不会出错的,因为这里的equals方法算是A类的自有方法,因为参数类型不同。Object类的equals方法是有参数的。这里算是重载。如果把这个方法加上参数Object o的话,行2就出错了。因为子类的访问类型不能弱与父类。
2, 因为Object类的equals方法是有参数的所以这里调用super的equals方法要报错的。
1, 行2实际上是不会出错的,因为这里的equals方法算是A类的自有方法,因为参数类型不同。Object类的equals方法是有参数的。这里算是重载。如果把这个方法加上参数Object o的话,行2就出错了。因为子类的访问类型不能弱与父类。
2, 因为Object类的equals方法是有参数的所以这里调用super的equals方法要报错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也觉的答案是D,如果你的题目没错的话。
因为第2行已经算是重载了,因此没错第3行中Object没有equals()这个方法
因为第2行已经算是重载了,因此没错第3行中Object没有equals()这个方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C.因为你用super调用父类方法时,方法的修饰权限必须大于父类,用protected 限制该方法显然不对,应该用public修饰。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C
因为Class A继承java.lang.Object。其中包含一个函数: public boolean equals (object target) ;
因此不能再定义protected重载。
因为Class A继承java.lang.Object。其中包含一个函数: public boolean equals (object target) ;
因此不能再定义protected重载。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询