黑马程序员技术交流社区

标题: 选择题 [打印本页]

作者: 彭卫红    时间: 2012-3-8 13:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: 杨毅    时间: 2012-3-8 14:15
第一个可以, 覆盖了父类中的show()方法;
第二个不行,和第一个的区别就是权限,权限没有父类中的高,无法覆盖
第三个可以,因为参数的类型不同,类似于函数的重载,
第四个不行,相当于同一个函数有两种返回值类型,那么调用这个方法的时候就不知道该返回哪一种类型了

作者: 自然虫洞    时间: 2012-3-8 14:48
子类覆盖父类时至少要有相同的权限,public权限最高,其次是默认权限,private权限最低,所以BC直接排除。静态的只能覆盖静态的。如果子类是静态的,父类必须的静态的。如果子类是非静态的,父类可以是静态的,也可以是非静态的。另外,覆盖(重写)时子父类的方法要一摸一样,包括返回值类型也要一样。由于D的返回值类型是short,与父类的int不一样,故也不行,只能选A。
再给你说下重载与重写的区别。
重载:只看同名函数的参数列表。
重写(覆盖):子父类的方法要一模一样。
作者: 许圣建    时间: 2012-3-8 14:57
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,public short show(int a,int b){return 0;}//不可以:返回值不同,不是覆写,但又不能和 父类函数同时存在于子类之中,矛盾所以不允许
重载是在一个类中出现同名函数,但是参数不同:不可以只是返回值不同,那样计算机无法做出选择。
覆写是子类覆写父类方法,因为能够覆盖从父类继承的方法,所以除了内容其他必须完全相同。
作者: 黑马张平    时间: 2012-3-8 15:03
现在搞的不是很清楚,我学习学习。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2