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

    Java允许一个类中定义多个方法,只要参数列表不同就行了。如果同一个类中包含了两个或者两个以上的方法的方法名相同,但形参列表不同,则被称为方法重载。

    /*
      参数类型不同的重载
    */
    public class OverLoad 
    {
        //下面定义两个test()方法,但方法的形参列表不同
        //系统可以区分这个方法,被称为方法重载
        public void test(){
        System.out.println("无参数!");
        }
        public void test(String A){
        System.out.println("重载test()方法:"+A);
    
        }
        public static void main(String[] args)
        {
            OverLoad ol=new OverLoad();
            ol.test();
            ol.test("yes");
        
        }
    }

    输出结果为:

    无参数!
    重载test()方法:yes

    /*
       参数个数不相同的重载
    */
    public class NumOverLoad 
    {
        public void test(){
        System.out.println("只有一个字符串参数的test方法!");
        }
        /*
           前面已经有一个test()方法,test()方法里只有一个字符串参数
           此处的个数可变参数里不包括一个字符串参数的形式
        */
        
        public void test(String...books){
        System.out.println("****形参可变的test()方法****");
    
        }
        public static void main(String[] args)
        {
            NumOverLoad nol=new NumOverLoad();
            //下面两次调用将执行第二个test()方法
            nol.test();
            nol.test("aa","bb");
            //下面调用第一个test()方法
            nol.test("aa");
            //下面调用第二个test()方法
            nol.test(new String[]{"aa"});
        }
    }

    输出结果:

    只有一个字符串参数的test方法!
    ****形参可变的test()方法****
    ****形参可变的test()方法****
    ****形参可变的test()方法****

    注意:一般不推荐重载形参参数个数可变的方法,因为在上述例子中,如果需要调用test(String ...books)方法,又只想传入一个字符串参数,则可采用传入字符串组的形式。如果只是简单传入一个字符串,那么2个方法就会出现混淆。

  • 相关阅读:
    Deep Learning(深度学习)学习笔记整理系列五
    Deep Learning(深度学习)学习笔记整理系列四
    Deep Learning(深度学习)学习笔记整理系列三
    Deep Learning(深度学习)学习笔记整理系列二
    Deep Learning(深度学习)学习笔记整理系列 一
    java对象转为json字符串
    eclipse常用功能及快捷键
    fiddler详解
    http状态码
    eclipse中文乱码
  • 原文地址:https://www.cnblogs.com/OliverQin/p/5060691.html
Copyright © 2011-2022 走看看