Overload重载:
在一个类中,我们是可以定义多个方法的,当有一系列的方法它们功能是相似的时,我们往往会使用Overload重载方法。简单来说,重载就是一系列实现功能相似,方法名一致,只是它们的参数有所不同。参数的个数、顺序、类型的不同,都能够使方法实现重载。
在当前图中的这个类中,存在四个同名的Student方法, 但它们每个可以传入的参数都不相同,所以就说它们实现了方法的重载。
在重载时需要注意的一点:参数名的不同并不能实现重载,必须是参数的个数,顺序,类型不同时才能够实现重载。
“重写”:
“重写”是指在类的继承中,子类可以对父类中的方法进行重新设计。子类在重写父类的方法时,方法名,参数,访问修饰符都必须和父类一致。
在图中 ,Son类经过extends关键字后继承了Dad类,run()方法就可以在Son类中进行如图中的重写操作,为了确保方法重写,在子类重写方法时,使用@Override,系统就会自动检测以下方法是否重写。
在子类“重写”父类的方法时,一定要注意除了方法体以外,其他内容必须和父类的方法保持一致,如图中所示,当返回值类型或函数名和父类不再一致时,此方法就不是“重写”了。另外,“重写”一定是发生在父类与子类之间的,是子类为了完成父类无法完成的内容而构造的,在一个类中是无法实现“重写”的。
小结:
1,定义不同:重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。
2,范围不同:重载是在一个类中发生的;重写是子类与父类之间发生的。
3,参数不同:重载的方法参数个数,类型,顺序至少有一个不同,而重写的参数必须相同。