黑马程序员技术交流社区
标题:
选择题
[打印本页]
作者:
张英杰
时间:
2011-10-9 21:41
标题:
选择题
class Demo
{
int show(int a,int b){return 0;}
}
下面那些函数可以存在于Demo的子类中
A、public int show(int a,int b){return 0;}
B、private int show(int a,int b){return 0;}
C、private int show(int a,long b){return 0;}
D、private short show(int a,int b){return 0;}
E、static int show(int a,int b){return 0;}
看毕老师的视频遇到的一个选择题,答案已经知道是A、C;麻烦前辈们给解释一下D选项,{:soso_e100:}
作者:
欧阳超
时间:
2011-10-9 21:50
要的是重写,显然D选项不属于重写
作者:
wsssx
时间:
2011-10-9 21:54
提示:
作者被禁止或删除 内容自动屏蔽
作者:
张英杰
时间:
2011-10-9 22:27
wsssx 发表于 2011-10-9 21:54
选C,只有C才能重载,其他都不能写入
A也是正确的啊,A是覆盖
作者:
康健
时间:
2011-10-9 22:37
子类需重写父类中的方法,并且子类和父类的方法必须相同,也就是 int show(int a,long b){return 0;}相同,而返回值类型不同
作者:
苏志伟
时间:
2011-10-9 22:56
楼主:要是重写方法答案只有A
A可以存在是应为它重写了父类的方法!
B错:是应为子类方法的访问级别不能比父类的低。
C 可以存在是应为它是该类的一个私有方法。其的形参,和父类的形参是不一样的!
D:不可以存在是应为:当我们调用show方法的时候,编译器也不知道我们调用的到底是哪一个方法!所以不行!
E:当我们调用的时候,编译器也不知道我们调用的到底是哪一个方法!所以不行!
作者:
王家俊
时间:
2011-10-10 02:35
D、private short show(int a,int b){return 0;}
这个方法是明显错误的,因为方法需要的返回值是short型的,而return的却是int型的0.另外就是这个方法的方法名称和参数列表与父类中的一样,但返回值类型却不一样,所以对象在调用时就不知道到底调用哪一个了。
作者:
石宗银
时间:
2011-10-10 10:37
d选项, 一看呢 是一个重写,,不过 重写时的 访问权限 必须大于等于 父类的
作者:
wsssx
时间:
2011-10-10 14:15
提示:
作者被禁止或删除 内容自动屏蔽
作者:
张磊
时间:
2011-10-11 10:41
不允许存在,参数相同返回值不同的方法,D显然
作者:
郭学文
时间:
2011-10-11 11:28
D和给定的函数是一样的。你show(1,2)的时候,是返回给你个int呢还是short呢?JVM会纠结的
你再回头看看函数的重载和覆盖就知道了
重载:函数名一样,这个没啥好说。
参数列表不一样。这里的参数列表包括参数类型和参数个数。注意参数类型是有顺序的。
重载与返回值类型无关。
其实你想想为什么要重载就能想通了。println(String) println(int) 重载是功能一样的函数为了方便调用起了同样的名字,打印一个字符串用 println 打印int类型数据也可以直接用println,而不用打印String用个printstring(),打个int又得printint........这样烦都会被烦死的。
覆盖么注意权限基本就OK了。
作者:
guobin_lu
时间:
2013-3-30 18:43
技术分技术分
作者:
白磊
时间:
2013-5-5 18:23
D 这个方法最不应该的就是方法名和参数名都是一样的,可是返回值的类型是不一样的,也不是重写,不会发改电父类方法,当调用的时候,根本不知道调用的是哪一个方法,所以D肯定是错的啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2