提到重载很难不提到另一个东西,那就是重写。这两个机制是完全不同的,重载是在同一个类中,编写方法名相同,参数不同,返回体可以不同的方法。重写则是子类重新编写父类中相同名字、参数、返回结果的方法。
我个人认为重载这个机制很少使用,因为相同的方法名,参数即使有不同,在调用API的时候也不是很友好,除非是工具类,可以往其中输入某些参数转换成一个固定的类对象。 即使是这种情况我还是倾向于把方法根据参数来命名成xxxtoxxx,更加的清晰明了。
作者还提到一个办法,就是让具体化的重载方法转发给更一般的重载方法。下面书中的例子就让我想到我们系统也有很多类似的方法,比如ForwardingShipunit里我遇到过一次更新no的内容,后来发现没有达到我想要的结果,后来看了其他地方的代码,才发现其实需要调用一个重载的方法,它的参数列表除了要更新的no以外还有一个String字符串,一般是Manual。