本帖最后由 怀念黑海岸 于 2014-8-6 11:58 编辑
一个函数内允许拥有多个同名函数,但是你如何保证调用它们时能区分开来呢,有几个办法,不同的同名函数
1:传入参数类型的不同,能够区分他们
2:传入参数的个数不同,能够区分它们
3:传入相同的参数个数,但是参数顺序不同,同样能够区分它们。
这就叫做重载。至于你这些同名函数是否有相同的返回值,他不会管。参数列表是判断两个函数名是否相同的标准。
我们在写程序时,经常会顺手就写出个我们这个类中并没有定义的方法,比如toString(),比如hashCode(),这些方法为什么我们能用呢,因为这些方法来自于整个java语言中最厉害的类--->Object类,所有类的亲爹。但是有时候我们在用object中的这些方法时,却感到并不顺手,因为没有达到我想要的结果,那么,你可以在你自己的方法内重新定义这个方法,这时,这个方法的名字,参数列表,返回值类型甚至有无抛出异常...都必须要和这个在你父类中定义的方法一致。然后在这个重新定义的类中你按照你自己的需求重新写了代码。这个就叫重写。当你继承了一个抽象类或者实现了一个接口时,你必须重写父类中的抽象方法或者重写接口中的所有方法。
在java中,重载和重写其实都是多态的表现形式。 |