【笔记】重载与重写的区别

1. 重载的意义
方法重载类似于一种系统,给予不同输入,系统能够产生不同的响应。例如一个计算器方法,输入不同的运算数字和符号,能够得到不同的运算结果。此外,在java包的函数里,重载十分常见,比如调用String类的valueOf()方法,会出现各种不同的输入参数

img

2. 重写的意义
师父传授给徒弟绝世武功,徒弟努力修炼,晃晃数十载,有了自己的感悟,于是将功法改进。此时徒弟对绝世武功方法进行了重写,有了自己的领悟和内涵,重写存在于父类和子类中。

3. 重载的特点
3.1 参数的类型、个数和顺序不同
学习是一个复杂的方法,学习不同科目,将收获不同的知识,不同科目就是不同类型;
可以学习一个科目,也可以学习多个科目,学的多可能不够精,学的少可能知识面不够广;
学习是层层递进的,如果未修先修课,直接学习更高级的课程,都会导致学习困难,因此除了量的积累,改变顺序同样能引发质变。
3.2 方法返回值和访问修饰符不同
单独改变方法返回值和访问修饰符并不同形成重载,需要搭配参数列表和使用。
4. 重写的特点
4.1 返回值的返回小于等于父类
java5版本前返回类型要求一致;
java7版本后可以不同,但必须是父类返回值的派生类。
4.2 抛出的异常范围小于等于父类
往上抛异常,父类必须能接收到才行,因此父类方法抛出异常的返回肯定是要大于或等于子类重写的方法的。
4.3 访问修饰符范围大于等于父类
如果父类方法修饰符是public,子类重写方法不能是protected
4.4 如果父类方法访问修饰符为 private 则子类就不能重写该方法
私有方法只能被当前类访问到

重载:是同一个类中,方法同名,但参数个数或类型不一致。
重写:是子类继承父类的情况下,子类覆盖父类的同名函数,必须方法名称一致,参数类型一致,参数个数一致,方法权限大于等于父类的权限。

写了折磨多,感觉你是再抄概念,自己简单理解不就好了,重写就是对现有的方法进行重写,使用场景就是当这个方法不能满足你的需要的时候需要进行重写,重载就是在一个类中的方法多功能多实现,最常见的场景就是你使用的构造方法