日期:2014-05-20  浏览次数:20638 次

求解释一下程序代码
class Father{

public void method(Serializable id){
System.out.println("in father");
}

}

class Son extends Father{
public void method(String id) {
System.out.println("in son");
}


}

public class Test {
public static void main(String[] args) {
Father f = new Son();
f.method("aaa");

}
}


-------------------------------

输出结果:in father
这两个method方法该怎么理解,是两个截然不同的方法(也不对,方法名一致,按概念要么重载要么重写)?还是重写方法?


------解决方案--------------------
你混淆了概念,上面既不是重载也不是重写。
重写是子类的方法覆盖父类的方法,要求方法名和参数都相同
重载是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同。
可见上面你就可以理解为是2个不同的方法而已。