函数重载: 对类中的一组同名函数, 根据函数实参的参数类型和参数个数的不同,决定调用哪一个对应的函数,这个过程,叫做函数的重载:
根据参数类型不同进行重载
people.java:
public class People { public void print (String str) { System.out.println("我调用了参数类型为String的方法!"); System.out.println(str); } public void print (int number) { System.out.println("我调用了参数类型为int的方法!"); System.out.println(number); } }
Test.java:
public class Test { public static void main(String args []) { People people1 = new People(); people1.print("字符串"); } }
输出:
我调用了参数类型为String的方法! 字符串
如果将Test.java中的语句换成:
People people1 = new People(); people1.print(1);
结果
我调用了参数类型为int的方法! 1
根据参数个数不同进行重载
People.java:
public class People { public void print (String str) { System.out.println("我调用了一个参数的方法!"); } public void print (String str1, String str2) { System.out.println("我调用了两个参数的方法!"); } }
Test.java:
public class Test { public static void main(String args []) { People people1 = new People(); people1.print("参数1", "参数2"); } }
输出:
我调用了两个参数的方法!
如果将Test.java中的语句换成:
public static void main(String args []) { People people1 = new People(); people1.print("参数"); }
输出:
我调用了一个参数的方法!
【注意】函数重载只和参数类型和参数个数有关,和返回值类型无关!! 例如public void XXX()和public String XXX()不构成重载! (这也当然会报错,因为两个函数重复了)同时重载也和参数的命名无关, public void XXX(String str1)和 public void XXX(String str2)是同一个函数,这和函数重载就更没有毛线关系了