0%

Java/方法重载

方法重载(overload)

适用于解决以下问题:

调用功能相似方法时传统的做法是编写多个有着不同名字的方法,这样既麻烦且不美观

解决方法

——方法重载(overload)

前提:

各个方法的功能都相似;

不是所有的语言都有这个机制

例如javascript没有这个机制

优点:

使用的方法名字一样,区分的依据是实参的数据类型;
程序员调用方法的时候比较方便,虽然调用的不同的方法,但是感觉就像是在使用一个方法一样,不需要记忆更多的方法;
同时代码更加美观。

注意:

功能不相似的时候尽可能让方法的方法名不同。

思考问题:

1.方法重载又被称为:overload
2.什么时候考虑使用方法重载:
功能相似的时候,尽可能让方法名相同;
【但是:功能不同/不相似的时候,尽可能不使用方法重载】
3.满足什么条件才构成方法重载

  • 在同一个类中
  • 方法名相同
  • 参数列表不同:
    • 数量不同
    • 顺序不同
    • 类型不同

4.方法重载和什么有关系,和什么没有关系?

  • 方法重载和方法名 + 参数列表有关系
  • 方法重载和返回值类型无关
  • 方法重载和修饰符列表无关(即与是否有public等等无关)

    方法重载的具体应用

    使用下面的自定义类,利用其中的各个重载方法就可以实现简单快速地输出各种类型的值。
    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
    // 自定义类
    public class SelfPrint{
    public static void p(byte data){
    System.out.println(data);
    }
    public static void p(short data){
    System.out.println( data);
    }
    public static void p(long data){
    System.out.println(data);
    }
    public static void p(float data){
    System.out.println(data);}
    public static void p(double data){
    System.out.println(data);
    }
    public static void p(boolean data){
    System.out.println(data);
    }
    public static void p(char data){
    System.out.println(data);
    }
    public static void p(String data){
    System.out.println(data);
    }
    }

构造方法也可以重载