zoukankan      html  css  js  c++  java
  • Java 方法重载 (Overload)

    对重载 (Overload) 的认识

    • 为什么要用方法重载:

      • 对于功能类似的方法来说,因为参数列表不一样,如果定义不同名称的方法,太麻烦且难以记忆。
      • 为了解决这个问题,引入方法的重载。
    • 重载的定义:

      • 多个方法的名称一样,但参数列表不一样。
    • 例子:

      • 不使用方法重载

        • 定义三个功能类似的方法
          public class TestOverload {
              public static int sumOne(int a) {
                  return a;
              }
              public static int sumTwo(int a, int b) {
                  return a + b;
              }
              public static int sumThree(int a, int b, int c) {
                  return a + b + c;
              }
          }
          View Code
        • 使用这三个方法
          public static void main(String[] args) {
              System.out.println(sumOne(1));
              // 输出 1
              
              System.out.println(sumTwo(1, 2));
              // 输出 3
          
              System.out.println(sumThree(1, 2, 3));
              // 输出 6
          }
          View Code
      • 使用方法重载

        • 定义三个功能类似的方法
          public class TestOverload {
              public static int sum(int a) {
                  return a;
              }
              public static int sum(int a, int b) {
                  return a + b;
              }
              public static int sum(int a, int b, int c) {
                  return a + b + c;
              }
          }
          View Code
        • 使用这三个方法
          public static void main(String[] args) {
              System.out.println(sum(1));
              // 输出 1
              
              System.out.println(sum(1, 2));
              // 输出 3
          
              System.out.println(sum(1, 2, 3));
              // 输出 6
          }
          View Code
    • 注意:

      • 方法重载的相关因素:

        • 参数个数不同
          public static int sum(int a) {
              return a;
          }
          public static int sum(int a, int b) {
              return a + b;
          }
          View Code
        • 参数类型不同
          public static int sum(int a, int b) {
              return a + b;
          }
          public static int sum(long a, long b) {
              return (int) (a + b);
          }
          View Code
        • 参数的多类型顺序不同
          public static int sum(int a, double b) {
              return (int) (a + b);
          }
          public static int sum(double a, int b) {
              return (int) (a + b);
          }
          View Code

          以上的三个因素都可以进行方法的重载

      • 方法重载的不相关因素:

        • 与参数的名称无关
          public static int sum(int a, int b) {
              return a + b;
          }
          public static int sum(int x, int y) {
              return x + y;
          }
          View Code
        • 与方法的返回值无关
          public static double sum(int a, int b) {
              return a + b;
          }
          public static int sum(int a, int b) {
              return a + b;
          }
          View Code

          以上的三个因素都不可以进行方法的重载

    • 总结:

      • 如果有功能类似的方法,可以使用方法重载,这样不仅容易记忆,调用起来也方便。

  • 相关阅读:
    CGI与FastCGI
    Google Protocol Buffer 的使用和原理
    AMQP协议
    Java 多线程 并发编程
    深入理解HashMap
    Bitmap 位图
    Bloom Filter概念和原理
    BloomFilter–大规模数据处理利器
    java bitmap/bitvector的分析和应用
    Linux iptables 备忘
  • 原文地址:https://www.cnblogs.com/liyihua/p/11811343.html
Copyright © 2011-2022 走看看