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)

}

}

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值