方法重载的定义是在同一个类中有多个相同方法名的方法,而他们的参数列表不同(参数的类型,个数,顺序);方法覆盖的定义是在子类中重写父类中的方法,这个方法名相同,参数列表也相同(参数的类型,个数,顺序),并且需要注意的是在子类中该方法的访问权限不能比父类中该方法的访问权限更严格(这个是规定)。
下面附个方法重载的例子:
class A{
public void print(){
System.out.println("打印无参数的方法");
}
public void print(String n){
System.out.println("打印有参数的方法");
}
}
public class Override {
public static void main(String[] args) {
A a = new A();
a.print();
a.print("n");
}
}
下面附运行结果:
下面附个方法覆盖的例子:
class B{
public void print(){
System.out.println("打印父类的方法");
}
}
class C extends B{
public void print(){
System.out.println("打印子类的方法");
}
}
public class Override {
public static void main(String[] args) {
B b = new C();
C c = new C();
b.print();
c.print();
}
}
看一下运行结果: