
- 外文名
- Overload
- 方 法
- 类以统一的方式
- 中文名
- 方法重载
- 目 的
- 处理不同类型数据
-
方法重载
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成员变量和局部变量
-
Java中方法重载、方法覆写以及方法重载与方法覆写的区别
2018-10-21 15:24:04文章目录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("天天向上。"); } }
在进行覆写操作时应当关注以下两点:
- 你当前使用的对象是通过哪个类new的。
- 当你调用某个方法,如果该方法已经被子类所覆写了,那么调用的一定就是被覆写过的方法。
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:20JAVA方法重载 重载(Overloading) 定义:在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可,返回值类型可以相同也可以不同。 下面就用例子 。 来验证一下定义。 图片中void ... -
Python 方法重载
2018-08-24 20:45:11python的方法重载有些特殊,在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:05java 方法重载 方法重载的定义:在一个类中有两个方法,他们具有相同的名字,但有不同的参数列表。 也就是说,方法名(等同于函数名)可以相同,只要保证形参类型不同就可以了 代码描述: 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:57Scala提供了方法重载功能,使我们能够定义相同名称但使用不同参数或数据类型的方法。 它有助于优化代码。 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:54Java中可以对任何定义的方法进行重载,以便于满足不同的需求方法重载需要满足的条件: 相同的方法名。 不同的参数。 注意事项: 不可能存在同名,同参数,不同返回值的方法。 重载解析时会调用更精确参数的方法。