您当前的位置: 首页 > 

大前端之旅

暂无认证

  • 2浏览

    0关注

    403博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

什么是重载or重写,二者的区别是?

大前端之旅 发布时间:2020-06-16 18:55:14 ,浏览量:2

目录
    • 1.重写
    • 2.重载
    • 3.重载(Overload) 和重写(Override) 的区别?

1.重写

重写必须满足如下条件: (1)方法的返回值类型必须相同。 (2)方法的参数个数必须相同。 (3)方法的参数对应的数据类型必须相同。 (4)子类方法不得降低父类同名方法的访问级别。 另外

  1. 被重写的方法发生在父类与子类之间
  2. 方法名。参数列表,返回值类型相同
  3. 重写的访问修饰符的权限一定要大于被重写的访问修饰符的权限
  4. 重写方法一定不能抛出 新的异常,或者比重写方法更宽泛的异常。
  5. 被final关键字修饰的方法不能被重写
  6. 构造方法不能被重写
  7. 子类的访问级别不能低于父类 的访问级别
2.重载
  1. 参数类型。顺序和个数至少有一个不同
  2. 重载发生在一个类中
  3. 不能重载只有返回值不同的方法名
  4. 构造方法可以重载
3.重载(Overload) 和重写(Override) 的区别?
  1. 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。

  2. 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。

  3. 重载对返回类型没有特殊的要求,不能根据返回类型进行区分。

关注
打赏
1660524863
查看更多评论
立即登录/注册

微信扫码登录

0.0414s