一般来说,分为两种情况。
一是在同一个类里面有两个或两个以上的同名的方法,这些方法的名字相同,但参数不同,这种情况中叫重载。当你调用方法时,会根据你传进去的参数的类型来决定调用哪个方法。
二是一个类继承了另外一个类,子类中有和父类中一样的方法,这两个方法不仅名字相同,参数也相同,这种情况叫方法覆盖。也就是在子类中重新定义父类中已有的方法。当你创建一个子类的实例后调用这个方法,就会按照你在子类中新定义的方法来实现。
同一个类中如果存在名称相同的方法,这个叫做重载,根本区别就是虽然名称相同,但是参数个数或者类型有所不同,这样在调用的时候可以知道用的具体是哪一个.
如果是父类和子类中的相同名称方法,这个叫重写.如果实现的是子类,那么调用的时候,自动调用的是重写之后,也就是子类中的方法体.如果需要调用超类中的该方法,可以使用super.xxxx
以上
在同一个类中,这种现象叫方法重写,体现Java的多态性。
区别就是传入方法的参数类型和个数。
多态
根据参数的匹配程度。会自动匹配最相近的方法。
如果有歧义,会编译异常!