java的方法重写和方法重载_Java方法重载和方法重写的区别

方法重载:在同一个类中,允许存在多个同名方法,只要它们的参数列表不同,与修饰符和返回值类型无关,这样的多个同名方法之间构成重载。

参数列表:参数个数,参数类型,参数顺序

方法调用:根据实际传入的参数决定调用哪个方法。

代码示例:

public class OverloadTest {

public static void main(String[] args) {

//根据实际传入的参数决定调用哪个方法

sum();

System.out.println(sum(15));;

System.out.println(sum(10.5d, 15.3d));;

}

public static void sum() {

System.out.println(10 + 10);

}

private static int sum(int a) {

return a + 10;

}

static double sum(double a, double b) {

return a + b;

}

}

方法重写:当父类中的方法对于子类来说不适用时,子类可以对从父类中继承来的方法进行重写/覆写。

方法调用:根据对象所属的类决定调用哪个类的方法。

代码示例:

class Father {

void show() {

System.out.println("Father show");

}

}

class Son extends Father {

@Override

public void show() {

System.out.println("Son show");

}

}

public class OverrideTest {

public static void main(String[] args) {

Father f1 = new Father();

f1.show();

//多态引用,实际创建还是子类对象,调用的也是子类重写的show方法

Father f2 = new Son();

f2.show();

}

}

区别总结:

重载

重写

定义位置

同一个类中

父类(接口)、子类(实现类)

方法名

必须相同

必须相同

形参列表

必须不同

必须相同

返回值类型

无关

如果是基本数据类型和void,必须一致;如果是引用数据类型,重写方法的返回值类型必须和被重写方法的返回值类型相同或是它的子类

权限修饰符

无关

重写方法的访问权限必须 大于或等于 被重写方法的访问权限

方法调用

根据传递的实际参数

根据对象的类型

抛出的异常

无关

重写方法抛出的异常类型要么和被重写方法相同,要么是被重写方法抛出的异常的子类,要么不抛出异常

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值