JAVA中重载方法和重写方法的区别经常在初级程序员面试中被提及,它们的区别在于重写发生在子父类中,而重载发生在一个类中。
重写是子类的方法名和父类相同(传入参数的类型、数量、顺序也要相同),如下:
class A{
public void a(){
System.out.print("A");
}
}
class B extends A{
public void a(){
System.out.print("B");
}
}
class Test{
public static void main(String[] args){
A c = new B();
c.a();//输出结果:B
//此时我们说子类B重写了父类A的a方法
}
}
重载是一个类中有两个相同名字的方法,这两个同名的方法是用传入的参数区分的,传入的参数或者类型不同或者数量不同或者顺序不同。下面这两个例子中类A中a方法被重载了,而D类是个错误的例子,因为方法的重载与返回值无关
class A{
public void a(){}
public void a(String name){}
public void a(String name,int age){}
public void a(int age,String
name){}
}
class D{
public void a(){}
public int a(){}
}