- Java类
- Java包
- Java方法
- Java访问
- Java创建
- Java对象(Object)
- Java内部类
- Java继承
- Java抽象类
- Java泛型类
- Java异常
- Java接口
- Java枚举
- Java注解
Java方法重载
在同一类中具有多个具有相同名称的方法称为方法重载。类中具有相同名称的方法可以是声明的方法,继承的方法或两者的组合。
重载方法必须具有不同数量的参数,不同类型的参数或两者。方法的返回类型,访问级别和throws
子句对使其成为重载方法没有任何影响。参考以下示例代码,其中有几个名称为 m1
方法。
import java.io.IOException; class MyClass { public void m1(int a) { // Code goes here } public void m1(int a, int b) { // Code goes here } public int m1(String a) { // Code goes here return 0; } public int m1(String a, int b) throws IOException { // Code goes here return 0; } }
示例-1
下面的代码显示了如何使用重载。参考以下代码 -
public class Main { public double add(int a, int b) { System.out.println("Inside add(int a, int b)"); double s = a + b; return s;//from ww w. ja v a 2 s . c om } public double add(double a, double b) { System.out.println("Inside add(double a, double b)"); double s = a + b; return s; } public static void main(String[] args) { Main ot = new Main(); int i = 1; int j = 1; double d1 = 10.42; float f1 = 22.3F; float f2 = 24.5F; short s1 = 22; short s2 = 26; ot.add(i, j); ot.add(d1, j); ot.add(i, s1); ot.add(s1, s2); ot.add(f1, f2); ot.add(f1, s2); } }
上面的代码生成以下结果。
Inside add(int a, int b) Inside add(double a, double b) Inside add(int a, int b) Inside add(int a, int b) Inside add(double a, double b) Inside add(double a, double b)
实例-2
有时,重载方法和自动类型扩展可能会混淆编译器,导致编译器错误。
class Adder { public double add(int a, double b) { return a + b; } public double add(double a, int b) { return a + b; } } public class Main { public static void main(String[] args) { Adder a = new Adder(); // double d = a.add(2, 3); // A compile-time error double d1 = a.add((double) 2, 3); // OK. Will use add(double, int) double d2 = a.add(2, (double) 3); // OK. Will use add(int, double) } }
上一篇:Java类方法
下一篇:Java实例和静态方法
分类导航
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
关注微信小程序
扫描二维码
程序员编程王