重捡Java(六)类与对象 重载
2020-05-05 本文已影响0人
我很惊讶
又一个常用,而且经常掰扯不清的概念。
很多教程都在告诉你一件事,重载和重写的区别,然而这俩只是名字接近一些,不用强求一起理解区分。
编程不是做科研,没那么多严格规定的定义,更多是是实际的使用。那么什么叫重载。就是同一个类中,几个相似的方法,方法名一样,传的参数的数量或类型不一样。
举个生活中的例子。比如一个类,叫做“人”,那这个类应该有一个方法叫做吃东西。吃完东西我们可以消化。但并不全是这样,比如吃的可能不是饭,而是非食用物品;又比如吃的不是一个东西,而是一些东西。但是很显然这一动作都是吃。所以我们可以
public void 吃(){}//啥都没吃的方法
public void 吃(饭 f){}//吃饭的方法
public void 吃(非饭 ff){}//吃的不是饭的方法
public void 吃(饭 f1,饭 f2){}//吃两顿饭的方法
上面这些,就叫对吃()方法的重载。本质是Java在调用方法的时候,会根据传递的参数类型以及数量,自动调用对应的方法
个人感觉这也是面向对象思维的一个很好的一点儿,就是你可以用实际问题的解决思路去考虑怎么把问题用编程解决,而不需要先用人脑抽象成一个数学问题
注意,重载这个概念是针对在一个类中的,同名方法的。所以不要去搞一些什么继承怎么重载父类的方法啊。接口有没有重载啊。等等反直觉的奇怪问题