当前位置: 代码迷 >> Java相关 >> 看看这道题怎么理解的?看着答案不知道为什么?
  详细解决方案

看看这道题怎么理解的?看着答案不知道为什么?

热度:316   发布时间:2013-10-23 15:38:31.0
看看这道题怎么理解的?看着答案不知道为什么?
Given:
1. public class Blip {
2. protected int blipvert(int x) { return 0; }
3. }
4. class Vert extends Blip {
5. // insert code here
6. }
Which five methods, inserted independently(任意地) at line 5, will compile?
(Choose five.)
A. public int blipvert(int x) { return 0; }
B. private int blipvert(int x) { return 0; }
C. private int blipvert(long x) { return 0; }
D. protected long blipvert(int x) { return 0; }
E. protected int blipvert(long x) { return 0; }
F. protected long blipvert(long x) { return 0; }
G. protected long blipvert(int x, int y) { return 0; }

Answer: ACEFG
搜索更多相关的解决方案: private  methods  public  return  insert  

----------------解决方案--------------------------------------------------------
首先看什么是方法重写:子类中的方法与父类中方法同名、同参数、同返回值类型,访问权限不能缩小 就是方法重写(或方法覆盖);
再看什么是方法重载:一个类中可以声明多个同名但不同参数的方法,叫方法重载。
1.首先看这几个选项中哪个符合方法重写(同名、同参、同返回值类型)?
   有A、B两项大概符合,但因为B选项的返回值权限private小于父类中的protected,所以不够成重写,所以B不对。
2.那么再看那些符合方法重载(同名、不同参)?
  是CEFG
3.最后只剩下D选项,D选项是同名、同参,但返回值类型不同,所以既不是重写也不是重载,所以D错误。

----------------解决方案--------------------------------------------------------
c 也是private,c为啥符合?

----------------解决方案--------------------------------------------------------
回复 2楼 lireach
B. private int blipvert(int x) { return 0; }  同名,同参数列表,同返回值 为重写, 而private把访问权限缩小了.
C. private int blipvert(long x) { return 0; }同名,不同参数列表,为重载

----------------解决方案--------------------------------------------------------
楼主多半是英语不过关。。。
----------------解决方案--------------------------------------------------------
  相关解决方案