重载表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)
class Demo {
int show(int a,int b) {
return 0;
}
}
问下下面这个函数能否存在于Demo的子类中:
public short show(int a,int b) {
return 0;
}
子类和父类的参数都为两个int数、所以不构成重载、重载与返回值无关至于参数类型和个数有关
public short show(int a,short b) {
return 0;
}
这样就和demo构成重载了
重载要注意以下的几点:
1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int,float),但是不能为fun(int,int));
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
|