【Java】重写和重载的区别

1. 简介

题主这两天笔试,经常遇到这个问题,一直以来也没有好好的整理过,今天来个一次性的整理

2. 分析

重载:Override

同一个类,参数列表不同,不能只通过返回值看待是否为重载

  • 发生在同一个类
  • 相同的方法名
  • 参数列表不同
  • 不看返回值,如果出现了只有返回值不同的“重载”,是错的。

正确示范

在这里插入图片描述

错误示范在这里插入图片描述

重写:Overload

准确的来说,就是只有方法体进行改变,其他不变,且子方法的修饰符要小于父类的修饰符

  • 发生在子类与父类中
  • 相同的方法名
  • 相同的参数列表
  • 返回值相同 或者 子类方法的返回值是父类方法返回值类型的子类
  • 访问修饰符相同 或者 子类方法的修饰符范围 大于 父类
  • 抛出的异常相同 或者 子类方法抛出的异常 小于父类

在这里插入图片描述
错误示范:

在这里插入图片描述

访问修饰符的大小

public > protected > default > private

猜你喜欢

转载自blog.csdn.net/qq_40915439/article/details/108540618
今日推荐