本篇是1000期面试系列文章的第115期,持续更新中.....
关注公众号“面试专栏”回复“面试”获取优质面试资源!
这道面试题是一位朋友,上周出去找实习工作时遇到的,当时这位同学还是懵圈了。
注意
千万别把重载和重写搞混了,重载是在一个类里,重写是有父子类的关系,也就说重写发生在两个类里。
重写特点
:函数名必须相同、参数列表必须相同、子类的返回值类型要等于或者小于父类的返回值类型等。
重载的特点
:函数名相同,参数列表不同,(访问控制符、返回值类型等无关
)。
重载代码
下面来看一段代码:
public class Test2 {
public static int add(int i, int j) {
return i + j;
}
public static double add(int i, int j) {
return i+j;
}
public static void main(String[] args) {
System.out.println(add(1,10));
}
}
这段代码有问题吗?
编译通不过,在编译期间,就已经对Java语法相关的进行校验了。
上面这段代码中,存在两个方面和参数一毛一样的方法了,只是返回值不同。
那么,我们在main方法中调用add方法的时候,到底调用的是哪一个?
所以,无法通过返回值对方法进行重载。
推荐阅读