java方法的重载

目录

1、什么是方法的重载(overload)?

2、方法的重载代码演示  

3、案例 

 

1、什么是方法的重载(overload)?

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。(引用自百度百科)

自我总结: 

在同一个类中,具有相同的方法名, 参数列表不同(参数的个数及类型不同),与返回值无关。

参数列表:个数不同,数据类型不同,顺序不同。

重载方法调用:JVM通过方法的参数列表,调用不同的方法。

 注意事项:

1、重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式。
2、重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载。

2、方法的重载代码演示  

//定义一个学生类
public class Student {
    //定义一个学习方法
    public static void study() {
    }
    //定义学习方法并传入String类型的name
    public static void study(String name) {
    }
    //定义学习方法并传入int类型的age
    public static void study(int age) {
        
    }
    //定义学习方法并传入String类型的name和int类型age
    public static void study(String name, int age) {
    }
    //public static int study(String name, int age){
    //}; //方法报错 因为方法重载与返回值类型无关
    
    //定义学习方法并传入String类型的name和int类型age以及String类型的性别
    public static void study(String name, int age, String sex) {
    }
    //与上面相同方法和相同参数,但是参数顺序不一样
    public static void study(int age, String name, String sex) {
    }

}

通过上面的代码演示,可以看出在一个类中,具有相同的方法名, 参数列表不同(参数的个数及类型/顺序不同),与返回值无关。

3、案例 

模拟输出语句中的println方法的效果,传递什么类型的数据就输出什么类型的数据,只允许定义一个方法名println。

public class MethodTest2 {
    //byte类型
    public static void println(byte a) {
        System.out.println(a);
    }
    //short类型
    public static void println(short a) {
        System.out.println(a);
    }
    //int类型
    public static void println(int a) {
        System.out.println(a);
    }
    //long类型
    public static void println(long a) {
        System.out.println(a);
    }
    //float类型
    public static void println(float a) {
        System.out.println(a);
    }
    //double类型
    public static void println(double a) {        
        System.out.println(a);
    }
    //char类型
    public static void println(char a) {
        System.out.println(a);
    }
    //boolean类型
    public static void println(boolean a) {       
        System.out.println(a);
    }
    //String类型
    public static void println(String a) {        
        System.out.println(a);
    }
}

你可能感兴趣的:(JavaSE,java)