[问题] SCJP题库第17题:override或overload ?

楼主: aster30 (紫苑)   2014-07-23 11:42:27
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;}
答案B跟D错 ACEFG对
B是因为继承的方法权限只能更开放,故不能用private
但明明C也是private阿,为什么C对?
D是因为overriding回传型态要跟父类别相同
但明明F/G也改了回传型别,为什么对?
作者: Aztecs (scetzA)   2014-07-23 11:51:00
因为CFG是overload吧
作者: pzyc79   2014-07-23 12:46:00
你标题不就写了override or overload ,就overload啊...
作者: Kennyq (舞光十射~*)   2014-07-23 14:21:00
看接收值,ABD是override,CEFG是overload
作者: bleed1979 (十三)   2014-07-23 15:03:00
给原po keyword: Method Signature
作者: nOhiTmE   2014-07-25 21:34:00
因为参数long ,所以不是override

Links booklink

Contact Us: admin [ a t ] ucptt.com