Overload与Override

Overload重载:指同一个类中可以同时存在多个同名的方法,但是方法的参数个数、参数类型及参数顺序不能相同(返回值类型可以改变)。

Override重写:指子类中存在与父类某个方法的方法名、参数个数和参数类型以及返回值类型完全一样的方法,总之和父类中的某个方法签名完全一样。通过子类创建的实例调用这个方法时,将调用子类中的这个方法。就相当于子类中的这个方法把父类中的这个同名方法给覆盖了一样了。

  • 重写是面向对象编程中多态性的实现方式之一。
  • 子类中的这个方法只能抛出比父类中的同名方法少的异常或是抛出父类方法中抛出异常的子异常。
  • 子类中覆盖的方法的访问权限只能比父类中的大或相等,不能更小。
  • 如果父类中的某个方法是private的,且子类中存在一个同名和同参数的方法时,此时不能称之为Override。因为子类根本不知道父类有这么一个方法,何来覆盖。
Overload的方法是否可以改变返回值类型?
  • 如果方法名相同,参数列表不同,那是可以改变返回值类型的。

final 方法不能被覆盖。

static 方法不能被子类继承,也就不能覆盖。


要实现重载只能通过不同的参数列表实现,不能通过 访问修饰符返回值抛出的异常实现。

覆盖的方法,只能改变访问修饰符抛出的异常不能改变返回类型方法名参数列表。且访问修饰符只能扩大或不变,抛出的异常只能是父类中同名方法抛出异常的子集或子异常。   如果改变了其他,就不能称之为覆盖,就相当于在子类中新增了个方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值