方法重载 订阅
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。 [1]  Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法。 展开全文
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。 [1]  Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法。
信息
外文名
Overload
方    法
类以统一的方式
中文名
方法重载
目    的
处理不同类型数据
方法重载软道语录
方法重载:方法重载就是方法名称重复,加载参数不同。在一个Java类中,定义多个同名的方法,如果方法名相同,方法参数不同,包括参数的类型和个数都不同,叫做方法的重载。调用重载方法时,Java 编译器通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载常用于创建完成一组任务相似但参数的类型或参数的个数或参数的顺序不同的方法。方法的重载,既可以发生在普通方法上,也可以发生在构造方法上。方法的重载,既可以发生在同类中,也可以发生在父子类中。Java方法的重载:返回类型、修饰符可以相同,也可不同。要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。
收起全文
精华内容
下载资源
问答
  • 方法重载

    千次阅读 2019-05-13 08:30:34
    (1)方法重载概念: 在同一个类中,可以存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。 (2)重载特点: 与返回值无关,只看参数列表。 (3)重载好处: 便于阅读,优化设计。 (4)使用规范 方法名...

    (1)方法重载概念:
    在同一个类中,可以存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
    (2)重载特点:
    与方法的返回值和修饰符无关,只看参数列表。
    (3)重载好处:
    便于阅读,优化设计。
    (4)使用规范

    • 方法名一定要相同。
    • 方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。
    • 方法的返回类型、修饰符可以相同,也可不同。

    (5)方法重载测试:

    class ceshi{
    	public static void main(String[] args){
    		System.out.println(add(2,3));
    		System.out.println(add(2,3,10));
    	}
    	
    	//求两个数的和
    	public static int add(int a,int b){
    		return a+b;
    	}
    	
    	//求三个数的和
    	public static int add(int a,int b,int c){
    		return a+b+c;
    	}
    }
    

    可以看到,两个方法都得到了正确的调用:
    在这里插入图片描述

    展开全文
  • Java 方法重载

    千次阅读 2020-01-18 22:46:56
    文章目录Java方法重载 概念Java方法重载 实例 Java方法重载 概念 在Java中,确定一个方法有三个因素: 调用者(方法所属者),既可以是类,又可以是对象; 方法名,方法的标识; 形参列表,当调用方法时,系统会...

    上一期 讲到了递归,今天来讲一下方法的重载!
    Java允许同一个类中定义多个同名方法,只要参数的个数或者类型不同即可。如果符合这种条件,即可称为方法的重载!!

    在这里插入图片描述

    Java方法重载 概念

    在Java中,确定一个方法有三个因素:

    • 调用者(方法所属者),既可以是类,又可以是对象;
    • 方法名,方法的标识;
    • 形参列表,当调用方法时,系统会根据传输入的实参列表进行匹配!

    方法重载的必要条件:

    同一个类中,方法名相同,参数列表不同(即 个数上不同,对应类型上不同)

    Java方法重载 实例

    public class Main {
    
        /**
         * CSDN第三女神
         * 方法重载
         *
         * @param args
         */
        public static void main(String[] args) {
    
            //调用 方法一
            function("第三女神");
    
            //调用 方法二
            function(26);
    
            //调用 方法三
            function("第三女神", 26);
    
        }
    
        /**
         * 方法一
         *
         * @param text
         */
        private static void function(String text) {
            System.out.println("方法一:" + text);
        }
    
        /**
         * 方法二
         *
         * @param number
         */
        private static void function(int number) {
            System.out.println("方法二:" + number);
        }
    
        /**
         * 方法三
         *
         * @param text
         * @param number
         */
        private static void function(String text, int number) {
            System.out.println("方法三:" + text + "," + number);
        }
    }
    

    输出:
    在这里插入图片描述

    从上边代码中可以看到,三个一样的方法名 function 方法,从个数和类型上是不一样的,这样就构成了方法重载的条件,在Main中调用,只需要传入对应类型和个数的即可,就分别调用了三种方法!


    如果被重载的方法里包含了个数可变的形参数呢?

    public class Main {
    
        /**
         * CSDN第三女神
         * 方法重载
         *
         * @param args
         */
        public static void main(String[] args) {
    
            //调用 方法一
            function("第三女神");
    
            //调用 方法二
            function(new String[]{"第三女神,珠穆朗玛"});
            
        }
    
        /**
         * 方法一
         *
         * @param text
         */
        private static void function(String text) {
            System.out.println("方法一:" + text);
        }
    
        /**
         * 方法二
         *
         * @param text
         */
        private static void function(String... text) {
            System.out.println("执行方法二:参数可变");
        }
    }
    

    运行效果:
    在这里插入图片描述
    方法二的参数,他就是数组,符合了参数名相同,类型不同。方法一参数是String类型,方法二形参即是String数组!一个是String类型,一个是数组,当然可以重载!


    大部分时候并不推荐重载形参个数可变的方法,第一,没有太大的意义,第二,容易降低程序的可读性!

    其它

    下一期 Java成员变量和局部变量

    展开全文
  • 文章目录1 方法重载2 方法覆写3 方法重载与方法覆写的区别3.1 概念上3.2 范围上3.3 限制 1 方法重载   概念: 方法名称相同,参数的个数或类型不同。 public class Test{ public static int add(int a,int b)...

    1 方法重载

    概念: 方法名称相同,参数的个数或类型不同。

    public class Test{
        public static int add(int a,int b)
        {
            return a+b;
        }
        public static int add(int a,int b,int c)
        {
            return a+b+c;
        }
        public static double add(double a,double b)
        {
            return a+b;
        }
        public static void main(String[] args)
        {
    
            System.out.println(add(1,2));
            System.out.println(add(1,2,3));
            System.out.println(add(1.0,2.0));
        }
    }
    

    在这里插入图片描述
    不能有两个名字相同,参数类型也相同却返回值不同的方法

      public  int add(int a,int b)
        {
            return a+b;
        }
        public String add(int a,int b)
        {
            return " ";
        }
    

    在这里插入图片描述
    构造方法的重载: 由于同一个类中不可能有两个属性,名称相同,类型不同所以构造方法的重载只能是参数的个数不同。

    2 方法覆写

    概念: 子类定义了与父类方法名称,返回值类型、参数类型及个数完全相同的方法。

    class Person {
        public void fun()
        {
            System.out.println("好好学习。");
        }
    }
    class Student extends Person{
        //方法覆写
        public void fun()
        {
            System.out.println("天天向上。");
        }
    }
    

      在进行覆写操作时应当关注以下两点:

    1. 你当前使用的对象是通过哪个类new的。
    2. 当你调用某个方法,如果该方法已经被子类所覆写了,那么调用的一定就是被覆写过的方法。
    class Person {
        public void f()
        {
            this.fun();
        }
        public void fun()
        {
            System.out.println("好好学习。");
        }
    }
    class Student extends Person{
        //方法覆写
        public void fun()
        {
            System.out.println("天天向上。");
        }
    }
    public class Test2{
        public static void main(String[] args)
        {
            Student student=new Student();
            student.f();
        }
    }
    

    在这里插入图片描述
    被覆写不能够拥有比父类更为严格的控制权限。

    public>default(不加任何说明 包访问权限)>private(只能在本类中使用) 即如果父类使用public进行声明,那么子类必须也使用public,如果父类使用default,那么子类可以使用public或者default。

    范例:错误的方法覆写:

    class Person {
        public void fun()
        {
            System.out.println("好好学习。");
        }
    }
    class Student extends Person{
        //方法覆写
        void fun()
        {
            System.out.println("天天向上。");
        }
    }
    

    在这里插入图片描述
    问题:父类方法用private定义,子类中使用public定义,可以吗??

    class Person {
        public void f()
        {
            this.fun();
        }
        private void fun()
        {
            System.out.println("好好学习。");
        }
    }
    class Student extends Person{
        //方法覆写
        public void fun()
        {
            System.out.println("天天向上。");
        }
    }
    public class Test2{
        public static void main(String[] args)
        {
            Student student=new Student();
            student.f();
        }
    }
    

    在这里插入图片描述
    学生类调用f方法,f方法调用fun方法,如果fun被覆写,就应该执行子类Student的fun方法,但是却执行的是父类的fun方法,可见fun没有被子类覆写。所以 方法覆写不能出现private关键字
    如果父类方法使用了private定义,那么就表示该方法只能被父类使用,子类无法使用。换言之,子类根本就不知道父类有这样的方法。这个时候子类的方法只是子类定义的新方法而已,和父类没有任何关系。所以

    3 方法重载与方法覆写的区别

    3.1 概念上

    方法重载: 方法名称相同,参数的个数及类型不同。
    方法覆写: 方法名称,返回值类型,参数的个数,参数的类型均相同。

    3.2 范围上

    方法重载:一个类。
    方法覆写:继承关系。

    3.3 限制

    方法重载:无权限要求。
    方法覆写:被覆写的方法不能拥有比父类更严格的访问控制权限。

    展开全文
  • Java方法重载

    万次阅读 多人点赞 2018-06-03 23:56:35
    在Java中,同一个类中的多个方法可以有相同的方法名称,但是有不同的参数列表,这就称为方法重载(method overloading)。参数列表又叫参数签名,包括参数的类型、参数的个数、参数的顺序,只要有一个不同就叫做参数...

    在Java中,同一个类中的多个方法可以有相同的方法名称,但是有不同的参数列表,这就称为方法重载(method overloading)。

    参数列表又叫参数签名,包括参数的类型、参数的个数、参数的顺序,只要有一个不同就叫做参数列表不同。

    重载是面向对象的一个基本特性。

    public class Demo {
    
    	//一个普通得方法,不带参数,无返回值
    	public void add(){
    		//method body
    	}
    	
    	//重载上面的方法,并且带了一个整形参数,无返回值
    	public void add(int a){
    		//method body
    	}
    	
            //重载上面的方法,并且带了两个整型参数,返回值为int型
    	public int add(int a,int b){
    		//method body
    		return 0;
    	}
    
    }

    通过上面的例子,不难看出,重载就是在一个类中,有相同的函数名称,但形参不同的函。重载的结果,可以让一个程序段尽量减少代码和方法的种类。

    说明:

    • 参数列表不同包括:个数不同、顺序不同、类型不同。
    • 仅仅参数变量名称不同是不可以的。
    • 跟成员方法一样,构造方法也可以重载。
    • 声明为final的方法不能被重载。
    • 声明为static的方法不能被重载,但是能够被在此声明。

    方法的重载的规则:

    • 方法名称必须相同。
    • 参数列表必须不同。
    • 方法的返回类型可以相同也可以不相同。
    • 仅仅返回类型不同不足以称为方法的重载。

    方法重载的实现:

    方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错,这叫做重载分辨
    展开全文
  • JAVA方法重载

    千次阅读 2021-01-31 13:00:20
    JAVA方法重载 重载(Overloading) 定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可,返回值类型可以相同也可以不同。 下面就用例子 。 来验证一下定义。 图片中void ...
  • Python 方法重载

    万次阅读 多人点赞 2018-08-24 20:45:11
    python的方法重载有些特殊,在python中,如下的代码并不能实现方法重载: def Aa():  pass def Aa(a):  print(1) def Aa(a,b):  print(2) # 这里想调用Aa的无参数版本,但是解释器会报错,提示找不到Aa...
  • 方法重载和构造方法

    2019-05-05 13:33:58
    方法重载: 方法名是一样的,但是参数类型不一样。 调用方法attack的时候,会根据传递的参数类型以及数量,自动调用对应的方法。 同样的,构造方法也适用于方法重载。 class Hero{ String name; int att; ...
  • C# 方法重载

    千次阅读 2019-07-26 20:08:31
    方法重载的构成 方法名相同 方法的参数不同 static void Main(string[] args){ int a,b; string s; double d; //重载的方法,可以接收五种形式的参数,同一方法根据参数执行不同的代码。 M(a); M...
  • java 方法重载

    千次阅读 2019-05-31 18:52:05
    java 方法重载 方法重载的定义:在一个类中有两个方法,他们具有相同的名字,但有不同的参数列表。 也就是说,方法名(等同于函数名)可以相同,只要保证形参类型不同就可以了 代码描述: package java_test...
  • 方法覆盖和方法重载

    千次阅读 2017-09-11 16:09:05
    方法重载和方法覆盖的区别: 方法重载:Overload 方法覆盖:Override 两者本身一点关系都没有,仅仅只是因为名字很像。 方法重载:Overload 作用:解决了同一个类中,相同的功能方法名不同的问题,既然是相同...
  • Python运算符重载方法重载

    千次阅读 2019-03-01 08:45:51
    方法 重载 何时调用 __init __ 构造函数 X=Class() __del __ 析构函数 对象销毁 __repr __ 打印转换 print X,repr(X) __str __ 打印转换 print X,str(X) __call __ 调用函数 X() __getattr __ 限制 ...
  • java方法重载

    2018-04-06 14:49:12
    /** * 方法得重载,说的是 方法名称相同,但是参数 列表不同 * 参数...相同参数列表得方法,会编译报错,此过程称为“重载解析” * 注意,方法得返回类型不能作为方法重载得条件 */public class OverLoadStudy {...
  • 方法覆盖与方法重载的区别

    千次阅读 2018-11-22 18:18:04
    方法重载的参数列表必须不一致 方法覆盖的返回数据类型必须一致;方法重载木得要求 方法覆盖只适用于父类和子类之间;方法重载适用于子类和父类内部,或者父类和子类之间 方法覆盖在访问权限和异常抛出方面有限定...
  • Java方法重载+方法重写

    千次阅读 2020-03-09 11:52:48
    方法重载 在Java中,同一个类中的多个方法可以有相同的方法名称,但是有不同的参数列表,这就称为方法重载(method overloading)。 参数列表又叫参数签名,包括参数的类型、参数的个数、参数的顺序,只要有一个...
  • 方法重写与方法重载的区别详解

    万次阅读 多人点赞 2019-05-24 21:44:46
    文章目录1、方法重写(Override)概念:好处:注意:重写规则:2、方法重载(Overload)概念:注意重载规则:3、重写与重载直接的区别4、简明了解5、总结(硬)6、图解 1、方法重写(Override) 概念: 重写是子类对...
  • 方法重载Overload

    2014-04-20 18:13:02
    方法重载:Overload 所谓方法重载
  • Scala 方法重载

    千次阅读 2018-09-18 14:44:57
    Scala提供了方法重载功能,使我们能够定义相同名称但使用不同参数或数据类型的方法。 它有助于优化代码。   Scala方法通过使用不同的参数重载示例 在下面的例子中,定义了两个具有不同数量的参数但具有相同数据...
  • 方法重载与方法重写

    千次阅读 2015-11-30 21:07:17
    方法重载(Overloading)  什么是方法重载?(发生在同一个类中) 方法名称相同,参数项不相同。那么认为一个方法是另一个方法的重载方法。 注意:重载只跟参数有关,与返回类型无关。方法名和参数相同...
  • Android-方法重载

    2019-02-15 09:08:29
    什么是Java方法重载? Java方法重载是什么意思? 在Java中,同一个类中的2个或2个以上的方法可以有相同的名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded),这个过程被称为方法重载...
  • 方法重载与方法重写的区别

    千次阅读 2019-03-05 14:38:21
    方法重载与方法重写学习之初,真的是容易混淆的,接下来我们捋一捋两个知识点的总结,希望对我们都有好处。 方法重载 方法重载是在我们学习方法的时候涉及的知识点,所以这是在我们方法里面的知识点,接下来我们...
  • 方法重载特性

    2016-06-07 11:17:54
    Java中可以对任何定义的方法进行重载,以便于满足不同的需求方法重载需要满足的条件: 相同的方法名。 不同的参数。 注意事项: 不可能存在同名,同参数,不同返回值的方法。 重载解析时会调用更精确参数的方法。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,139
精华内容 21,255
关键字:

方法重载