方法重载
定义:在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。
下面为例
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
/**
* 重载测试参数类型,顺序,个数不同 * * @author SHHHS */ public class TestOverload { public static void main ( String[ ] args ) { Test m = new Test ( ) ; System.out.println( m.add ( 4 , 5 ) ) ; System.out.println( m.add ( 4.22 , 5 ) ) ; System.out.println( m.add ( 4 , 5.23 ) ) ; System.out.println( m.add ( 4 , 5 , 6 ) ) ; } } class Test { public int add ( final int a , final int b ) { return a + b ; } public int add ( final double a , final int b ) { return (int)( a + b ) ; } public int add ( final int a , final double b ) { return (int)( a + b ) ; } public int add ( final int a , final int b , final int c ) { return a + b + c ; } } |
由此可见,参数的顺序,类型,个数不同都可构成重载。
但是仅仅方法的返回值类型不同不构成重载,如下。
1
2 3 4 5 6 7 |
//不构成方法重载
public int add ( final int a , final int b ) { return a + b ; } public double add ( final int a , final int b ) { return a + b ; } |
此外,构造方法也可以重载。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/**
* 测试构造函数重载 * @author SHHHS * */ public class Student { private String name , gender ; private int age ; public Student ( String name , int age , String gender) { this.name = name ; this.age = age ; this.gender = gender ; } public Student ( String name , int age ) { this.name = name ; this.age = age ; } public Student ( String name ) { this.name = name ; } public static void main ( String [ ] args ) { Student s1 = new Student ( "Tom" ) ; Student s2 = new Student ( "Jerry" , 23 ) ; Student s3 = new Student ( "John" , 22 , "Male" ) ; } } |
(完)
原文:https://www.cnblogs.com/shadowland/p/9559475.html