重写与重载的区别java,java重写和重载的区别简答

  重写与重载的区别java,java重写和重载的区别简答

  重载(Overloading)

  (推荐学习:java入门)

  方法重载是类以统一的方式处理不同类型数据的一种方式。具有相同名称的多个函数同时存在,具有不同数量/类型的参数。重载是类中多态性的一种表现。

  Java的方法重载意味着可以在一个类中创建多个方法,这些方法具有相同的名称,但是具有不同的参数和定义。

  当一个方法被调用时,通过传递给它们的不同参数的数量和类型来决定使用哪个方法,这被称为多态性。

  重载时,方法名应该相同,但参数类型和个数不同,返回值类型可以相同也可以不同。返回值类型不能作为重载函数的区分标准。

  当父方法被默认修饰时,它只能被它在同一个包中的子类重写,但是如果它不在同一个包中,它就不能被重写。

  当一个父类的方法被原型化时,它不仅在同一个包中,而且被它的子类覆盖,并且可以被不同包的子类覆盖。

  重载的规则

  必须有不同的参数列表;

  可以有不同的返回类型,只要参数列表不同;

  可以有不同的访问修饰符;

  可以抛出不同的异常;

  重写方法的规则

  参数列表必须与被重写的方法完全相同,否则不能被重写,只能被重载。

  的返回类型必须始终与被重写方法的返回类型相同,否则不能称为重写,只能称为重载。

  访问修饰符的限制必须大于被重写方法的限制(publicprotecteddefaultprivate)

  重写方法不得引发新的检查异常或比被重写方法声明的检查异常更广泛的检查异常。例如,父类的方法声明了一个检查异常IOException。在重写该方法时,不能抛出异常,只能抛出IOException的子类异常,并且可以抛出非检查异常。

  重载和重写(覆盖)的特点

  (视频教程推荐:java视频教程)

  Overload 特点

  1.使用重载时,只能使用不同的参数样式。比如参数类型不同,参数个数不同,参数顺序不同(当然同一个方法中的几个参数类型肯定是不同的,比如fun(int,float),而不是Fun (int,int));

  2.重载不能通过访问权限、返回类型和抛出异常来完成;

  3.方法中异常的类型和数量不会影响重载;

  4.对于继承,如果一个方法在父类和priavte中有访问权限,它不能在子类中重载。如果定义了,也只是定义了一个新的方法,不会达到重载的效果。

  Override 特点

  1.被覆盖方法的logo必须与被覆盖方法的logo完全匹配,才能达到覆盖的效果;

  2.被覆盖方法的返回值必须与被覆盖方法的返回值一致;

  3.被覆盖方法抛出的异常必须与被覆盖方法或其子类抛出的异常一致;

  4.被覆盖的方法不能是私有的,否则只是在子类中定义了一个新方法,并没有覆盖它。

  总结

  overload(重载)

  参数、数量和顺序中至少有一个不同。

  不能重载只有不同返回值的方法名。

  存在于父类、子类和同类中。

  override(重写)

  方法、参数和返回值是相同的。

  子类方法不能缩小父方法的访问权限。

  子类方法不能抛出比父方法更多的异常(但是子类方法不能抛出异常)。

  存在于父类和子类之间。

  该方法被定义为最终方法,不能被重写。这就是java中如何区分重写和重载的概念。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: