Java中的方法重载(Overloading)和覆盖(Overriding)

Java中的方法重载(Overloading)和覆盖(Overriding)是面向对象编程中两个重要概念,它们虽然都涉及同名方法,但在实现方式和应用场景上有明显区别。
1、方法重载(Overloading)

方法重载发生在同一个类中,当多个方法具有相同的名称但参数列表不同时。重载方法可以通过参数个数、参数类型或参数顺序来区分,而返回类型不能作为区分重载方法的依据重载是一个编译时概念,编译器根据方法签名来确定调用哪个方法。
2、方法覆盖(Overriding)

方法覆盖发生在继承关系中,子类重新定义父类中已有的方法。覆盖要求方法名称、参数列表和返回类型都必须与父类方法相同(或返回类型为父类方法返回类型的子类)。覆盖方法不能降低父类方法的访问权限,并且只能覆盖非private和非final的方法。覆盖是一个运行时概念,JVM会根据实际对象类型来决定调用哪个方法。
3、主要区别

    ‌发生位置‌:重载在同一个类中,覆盖在继承关系的子类中
    ‌方法签名‌:重载要求参数列表不同,覆盖要求方法签名完全相同
    ‌多态性‌:覆盖体现了运行时的多态性,重载则没有
    ‌绑定时机‌:重载在编译时确定,覆盖在运行时确定

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值