A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵文豪 中级黑马   /  2014-6-11 22:46  /  1253 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

选择题题干:
class Demo
{
    int show(int a,int b)
      {
          return 0;
      }}
下面函数是否可以存在Demo的子类中,说明理由
public short show(int a,int b)
{
  return 0;
}


6 个回复

倒序浏览
b不可以:
理由如下:
重载:参数列表不相同,与返回值没关系,
参数列表不同:
         体现:个数不同,参数类型不同
回复 使用道具 举报
如果这个方法能存在Demo类中并且当有如下代码时:
Demo d = new Demo();
d.show();
该调用哪个show方法?JVM无法确定到底该调用哪个show方法,所以不能存在于Demo类或者子类中
回复 使用道具 举报
我觉得不可以,子类要覆盖父类中的show()方法,必须保证子类方法的返回类与父类方法一致
回复 使用道具 举报
楼主你好,这道题的答案是不可以。因为若一个类中要存在两个同名方法需要这两个方法以重载的形式出现,而两个方法是否重载主要是看方法的参数列表中即(参数类型1  形式参数2 ,参数类型1  形式参数2 ...)参数个数或者参数类型不同才可构成重载。可是这道题里边的两个方法参数个数和类型完全一致,只是返回值类型不同,并不能构成重载。
回复 使用道具 举报
╭月牙湾湾╮ 发表于 2014-6-12 02:02
楼主你好,这道题的答案是不可以。因为若一个类中要存在两个同名方法需要这两个方法以重载的形式出现,而两 ...

非常感谢你的解答,明白啦
回复 使用道具 举报
axuan 发表于 2014-6-11 23:35
b不可以:
理由如下:
重载:参数列表不相同,与返回值没关系,

非常感谢你的解答,明白啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马