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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

tracyhui1

注册黑马

  • 黑马币:

  • 帖子:

  • 精华:

© tracyhui1 注册黑马   /  2011-9-19 23:39  /  2085 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[code=java]public class Human{
    public List BIN_search(HashMap map){
               //................
     }

public class Man extends Human{
    public List BIN_search(Map map){
               //................
     }
}
}[/code]如果我在主方法里调用:[code=java]Man man =new Man();
HashMap map=new HashMap();
man.BIN_search(map);[/code]为什么执行的是父类Human里的方法?

4 个回复

倒序浏览
黑马网友  发表于 2011-9-19 23:46:06
沙发
括号括错了  不好意思  不过不影响问题啊[code]public class Human{   
public List BIN_search(HashMap map){              
//................
     }


public class Man extends Human{  
  public List BIN_search(Map map){         
//................   
     }
}[/code]

评分

参与人数 1技术分 +2 收起 理由
admin + 2 加分鼓励!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-19 23:57:33
藤椅

重载

完整代码应该如下[code]public class Human{   
public List BIN_search(HashMap map){              
//................
     }


public class Man extends Human{  

public List BIN_search(HashMap map){              
//................
     }

  public List BIN_search(Map map){         
//................   
     }
}[/code]因为这两个方法是重载 不是覆盖
Man继承了Human类  所以拥有父类的所有方法

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-20 00:21:04
板凳
这个是重载 不是重写
回复 使用道具 举报
黑马网友  发表于 2011-9-21 14:00:53
报纸
出现这样的疑问,主要是你对方法覆盖的概念还没有了解,理论的东西
覆盖方法必须满足多种约束
1、子类方法名称、参数签名和返回类型必须与父类的方法名称、参数签名和返回类型一致。(由此可见,你说的这个不是方法覆盖)
2、子类方法不能缩小父类方法的访问权限
3、子类方法不能抛出比父类更多的异常
4、方法覆盖只存在于子类和父类中,包括直接父类和间接父类
5、父类的静态方法不能被子类覆盖为非静态方法
6、子类可以定义与父类静态方法同名的静态方法,以便在子类中隐藏父类的静态方法
7、父类非静态方法不能被子类覆盖为静态方法
8、父类的私有方法不能被子类覆盖
9、父类的抽象方法可以被子类通过两种途径覆盖:一是实现父类抽象方法,二是重新声明父类的抽象方法
10、父类的非抽象方法可以被覆盖为抽象方法
就这么多吧,纯手打,希望对楼主有帮助!

评分

参与人数 1技术分 +2 收起 理由
admin + 2 不错!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马