zoukankan      html  css  js  c++  java
  • 什么叫java方法重载?

    方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。   

    Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法

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

    注:方法重载与修饰符和返回值类型无关, 与参数的名称无关,只与参数列表的个数,类型,顺序相关

    与返回值类型无关:

    public static int sum(int a,int b){
            return  a+b;
    }
    public static float sum(int a,int b){
            return  a+b;
    }

    与参数名称无关:

    public static int sum(int a,int b){
            return  a+b;
    }
    public static int sum(int c,int d){
            return  c+d;
    }

    举例

    /*
    题目要求:
    比较两个数据是否相等。
    参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,
    并在main方法中进行测试。
     */
    public class DemoMethodOverloadSame {
        public static void main(String[] args) {
            byte a=10;
            byte b=20;
            System.out.println(isSame(a,b));
            System.out.println(isSame(11,12));
            System.out.println(isSame((short)11,(short)13));
            System.out.println(isSame(10,10));
            System.out.println(isSame(10L,20L));
        }
        public static boolean isSame(byte a,byte b){
            System.out.println("两个byte参数的方法执行!");
            return a==b;
        }
        public static boolean isSame(short a,short b){
            System.out.println("两个short参数的方法执行!");
            return a==b;
        }
        public static boolean isSame(int a,int b){
            System.out.println("两个int参数的方法执行!");
            return a==b;
        }
        public static boolean isSame(long a,long b){
            System.out.println("两个long参数的方法执行!");
            return a==b;
        }
    }
    

    判断:

    public class Test{
        public static void open(){} // 正确重载
        public static void open(int a){} // 正确重载
        static void open(int a,int b){} // 代码错误:和第9行冲突
        public static void open(double a,int b){} // 正确重载
        public static void open(int a,double b){} // 代码错误:和第7行冲突
        public void open(int i,double d){} // 代码错误:和第6行冲突
        public static void OPEN(){} // 代码正确不会报错,但是并不是有效重载
        public static void open(int i,int j){} // 代码错误:和第4行冲突
    }
  • 相关阅读:
    TensorFlow(十五):使用inception-v3实现各种图像识别
    TensorFlow(十四):谷歌图像识别网络inception-v3下载与查看结构
    TensorFlow(十三):模型的保存与载入
    TensorFlow(十二):使用RNN实现手写数字识别
    TensorFlow(十一):递归神经网络(RNN与LSTM)
    TensorFlow(十):卷积神经网络实现手写数字识别以及可视化
    ffmpeg-20160628-git-bin.7z
    ffmpeg-20160617-git-bin.7z ffmpeg-20160626-git-bin.7z
    欧洲杯 2016 高清直播
    YY 神曲 李明霖 14部合集
  • 原文地址:https://www.cnblogs.com/chenxiaoge/p/13335492.html
Copyright © 2011-2022 走看看