【软件构造】Override和Overload有何区别?

Override 与OverLoad的区别

  • 这个本来应该在写实验的时候就写完,但是当时老是被乱七八糟的事分去精力,做往年期末复习题遇到了相关知识点,现在补上,作为复习整理。

多态性的不同表现

  • Override:在子类中如果需要定义一个与父类重名且参数相同的方法,这种操作成为重写(Override)。当我们调用子类的这个方法时,父类中的同名方法将被屏蔽。
  • OverLoad:在同一个类中如果需要定义多个同名的方法,参数不同(个数不同,类型不同,次序不同),这种操作成为重载(OverLoad)。
  • Override和Overload都是多态性的表现。Override是父类与子类之间的多态性,而Overload是一个类中的同名方法之间的多态性。

Override和OverLoad的特点的不同:

  • Override:
    • Override的方法的标志必须和被覆盖的方法表示完全一致(方法名,参数)。
    • Override的返回值必须和被覆盖的方法一致。
    • Override抛出的异常必须和被覆盖方法一致,也可以是被覆盖方法异常的子类(外部方法必须“接得住”)
    • private修饰的方法不需Override,因为原方法只作用于父类内部,即使同名,也认为是子类的新方法,不存在重写或覆盖。
    • final修饰的方法不能重写
  • Overload:
    • OverLoad时,参数不能一样,不管是参数类型,参数个数还是参数顺序(如果考虑参数顺序,则参数的类型不能都相同),反正不能都一样
    • 不能通过访问权限、返回类型、抛出的异常进行虫子啊。
    • 方法的异常类型或数目不影响重载。
    • 互为Overload的方法一定在同一个类内(本质上是相互替代的关系,具体谁替代谁又输入参数信息决定;Override是单向替代,子类中override父类原方法直接下班)。
    • 子类中出现和父类方法名相同的方法,但参数不同,这种情况既不是Override(因为参数不同),
      也不是Overload(不在同一个类中),而是不同的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值