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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘欢 中级黑马   /  2013-4-10 23:48  /  1461 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

方法重载时,是怎么通过参数类型来选择方法?

8 个回复

倒序浏览
方法重载选择是一一对应,比如无参时,程序会自动找到一个无参重载方法与其对应,否则就不选择。
回复 使用道具 举报
是根据你传入的参数来自动选择,如public void show(int a){}和public void show(int b,String name)你调用方法show(1)时,运行的是第一个,show(1,“zhangsan”)调用的就是第二个,是由jvm自动调用的
回复 使用道具 举报
方法的重载是根据方法的参数列表(即参数的个数和类型)的不同来区分,系统会自动根据你输入的参数的个数和类型去调用程序中相应的方法。
回复 使用道具 举报
方法重载 就是同名方法 方法名相同,参数类型、参数个数不同,就是方法重载,和方法的返回类型无关, 当你调用重载方法时,程序会根据你给的参数自动去匹配相应的方法
回复 使用道具 举报
同上,JVM会根据你输入的值自动选择方法,如下例题当person p中没有数据输入时,JVM会自动为其匹配class person中person()方法;
当person p1中输入张三时,JVM会自动为其匹配class person中person(String n)方法;
当person p2中输入"李四,12"时,JVM会自动为其匹配class person中person(String n,int a)方法;
  1. class ConstrutorDemo{
  2. public static void main(String[] args) {
  3. Person p = new Person();//没有输入变量,自动匹配方法Person()
  4. p.speak();
  5. Person p1 = new Person("李四");//输入变量只有一个String类型的"李四",自动现在方法Person(String n)
  6. p1.speak();
  7. Person p2 = new Person("张三",12);//输入变量只有一个String类型的"张三,12", //自动现在方法Person(String n, int a)
  8. p2.speak();
  9. }

  10. }

  11. class Person{
  12. int age ;
  13. private String name ;
  14. public void speak(){
  15. System.out.println(age + "....." + name);
  16. }
  17. Person(){
  18. cry();
  19. }
  20. Person(String n) {
  21. name = n;
  22. cry();
  23. }
  24. Person(String n, int a){
  25. name = n;
  26. age = a;
  27. cry();
  28. }
  29. public void cry(){
  30. System.out.println("哇哇");
  31. }
  32. }

复制代码
回复 使用道具 举报
参数自动匹配,具体细节我们不用管的啦!
回复 使用道具 举报
方法重载,是指方法名相同,参数不同(个数或类型)。用的时候,会根据掉的方法名,和传的参数选择与之相同的方法。
回复 使用道具 举报
重载是指方法名称相同, 只是参数个数或类型不同. 方法功能是相同的.
student listudent = new student("李四",'男',18,90,95,80);
student xlstudent = new student("小兰",'女',16);
希望对你有帮助
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马