Java之方法重载篇(我重载了,你要如何来调用我。。)
# **一、课前引言**
-
请看一下代码,你发现什么特殊之处了吗?
public class MethodOverload { public static void main(String[] args) { System.out.println("The square of integer 7 is " + square(7)); System.out.println("\nThe square of double 7.5 is " + square(7.5)); } public static int square(int x) { return x * x; } public static double square(double y) { return y * y; } }
二、如何重载?如何调用?
上述示例代码展示了Java的“方法重载(overload)”特性。
-
重载的条件
- 两个或多个方法才能构成“重载”关系;
- 方法名一致;
- 参数类型不同,参数个数不同,或者是参数类型的顺序不同;
-
需要注意
方法的返回值不作为方法重载的判断条件。
-
查看JDK文档中System.out.println()方法,发现了什么?
共有10个println()方法构成了“重载关系”,如下图:

Java语言中三大特性:封装性、继承性、多态性,而方法的重载则反映了多态性,即同一个方法名确产生了不同的形态。重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。重载是一种多态(如C++,Java),有四种形式的多态:
1.虚函数多态
2模板多态
3重载
4转换
所谓的动态和静态区分是另一种基于绑定时间的多态分类,严格来说,重载是编译时多态,即静态多态,根据不同类型函数编译时会产生不同的名字如int_foo和char_foo等等,以此来区别调用。故重载仍符合多态定义——通过单一标识支持不同特定行为的能力,只是重载属于静态多态,而不是通过继承和虚函数实现的动态多态。
浙公网安备 33010602011771号