方法重载,重构,覆盖,重写的区别

版权声明:-万里晴空-祝你前途晴朗 https://blog.csdn.net/qq_35207917/article/details/83119822

方法重载还是比较好理解的,就是在类的内部,定义多个方法,这些方法的方法名字相同,参数类型和参数个数不同,注意,返回值类型并不能区分重载;看代码:

public void show(int a,double b){

}
 public void show(double c){
 }
 
 public int show(double d){return  1;}   //报错,方法已经定义了

在看方法重写(override)
方法重写和方法覆盖都是一个道理,发生在子类继承父类或者实现接口的类,
要求的是
1.方法名字相同,
2.参数个数不同,
3.返回值类型不同 ,
代码:
在这里插入图片描述
在这里插入图片描述
方法重构:
定义:在不改变外界外界访问的情况下对代码进行修改,但是不改变原方法的效果,提高其性能,使程序更加易读,可维护。
重构是在不改变软件可观察行为的前提下改善其内部结构
重构通常不是一次性的,它贯穿软件的整个生命周期,只要觉得不合理都是重构的时机。

举个例子就好理解了:
在接手一个遗留项目的时候,我们往往会遇到以下情况
某甲:代码看了半天还是看不懂啊,尼玛,一个方法上千行,心累ing
若干天后,终于看懂代码了,但是发现IDE一堆警告,一看提示说存在重复的代码,整个项目都是警告,那么多重复代码,不会封装一下吗,靠
试着优化下代码,改着改着发现好多if-else,还是多层嵌套,每个嵌套的判断还TM很复杂,想想还是先不改了,万一改出问题,老子要吃P的(线上故障)
以上情景想必大家一定很熟悉,心底肯定在嘀咕:这么烂的代码哪个孙子写的,不该了,老子重新写一套。。。

猜你喜欢

转载自blog.csdn.net/qq_35207917/article/details/83119822