Overloading和Overriding的区别


方法覆盖和方法重载的异同

Overloading 重载

Overriding 重写,又称覆盖


方法覆盖和方法重载具有以下相同点:

  • 都要求方法同名

  • 都可以用于抽象方法和非抽象方法


方法覆盖和方法重载的不同点:

  • 方法覆盖要求参数必须一致,而方法重载要求参数必须不一致

  • 方法覆盖要求返回值类型必须一致,而方法重载不做限制

  • 方法覆盖只用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从父类中继承的方法)

public class Base {
    public void method() {...}
}

public class Sub extends Base {
    //继承了父类的method()方法
    public void method() {...}
    
    //重载了从父类继承的method方法
    public void method(int i) {...}
    
    //方法可以被重载很多次
    public void method(int i,String s) {...}
}

  • 方法覆盖对方法的访问权限和抛出的异常有特殊要求,而方法重载没有限制

  • 父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载很多次


转载于:https://my.oschina.net/MissLee/blog/201485

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值