黑马程序员技术交流社区

标题: 一个选择题的选项为什么错? [打印本页]

作者: 赵文豪    时间: 2014-6-11 22:46
标题: 一个选择题的选项为什么错?
选择题题干:
class Demo
{
    int show(int a,int b)
      {
          return 0;
      }}
下面函数是否可以存在Demo的子类中,说明理由
public short show(int a,int b)
{
  return 0;
}



作者: axuan    时间: 2014-6-11 23:35
b不可以:
理由如下:
重载:参数列表不相同,与返回值没关系,
参数列表不同:
         体现:个数不同,参数类型不同

作者: shisishishisi    时间: 2014-6-11 23:37
如果这个方法能存在Demo类中并且当有如下代码时:
Demo d = new Demo();
d.show();
该调用哪个show方法?JVM无法确定到底该调用哪个show方法,所以不能存在于Demo类或者子类中
作者: Be_myself    时间: 2014-6-12 00:22
我觉得不可以,子类要覆盖父类中的show()方法,必须保证子类方法的返回类与父类方法一致
作者: ╭月牙湾湾╮    时间: 2014-6-12 02:02
楼主你好,这道题的答案是不可以。因为若一个类中要存在两个同名方法需要这两个方法以重载的形式出现,而两个方法是否重载主要是看方法的参数列表中即(参数类型1  形式参数2 ,参数类型1  形式参数2 ...)参数个数或者参数类型不同才可构成重载。可是这道题里边的两个方法参数个数和类型完全一致,只是返回值类型不同,并不能构成重载。
作者: 赵文豪    时间: 2014-6-12 21:57
╭月牙湾湾╮ 发表于 2014-6-12 02:02
楼主你好,这道题的答案是不可以。因为若一个类中要存在两个同名方法需要这两个方法以重载的形式出现,而两 ...

非常感谢你的解答,明白啦
作者: 赵文豪    时间: 2014-6-12 22:01
axuan 发表于 2014-6-11 23:35
b不可以:
理由如下:
重载:参数列表不相同,与返回值没关系,

非常感谢你的解答,明白啦




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