方法重载(overload):
同一个类中方法之间的关系。这里要弄清楚如何区别是两个方法签名是否同一个方法的签名。方法签名的区分规则:方法签名的区分是以方法的参数类型、排序与个数为标准的。如果两个方法签名有相同的参数类型、参数排序和参数个数,那么这两个方法使用的同一个签名。在同一个类中两个方法使用同一个方法签名会报错。而方法重载就是两个方法使用了相同的方法名而方法的参数不一致,方法的签名也与方法的返回值无关。
举例:
class OverloadTest {
public static void main(String []args){
method1();
method1(1);
}
static void method1(){
System.out.println("method1");
}
static void method1(int i){
System.out.println("method1 too");
}
}
方法覆写(override):
即方法覆盖。指的是父子类中方法的关系。父类A中有方法method1,在子类中想要使用method1这个方法签名而又要实现与父类method1方法不同的功能,这个时候就要用到方法重写。即子类使用父类的方法签名,但子类方法体与父类不同,实现的功能不同。
public class A {
public void method1(){
System.out.println("method1");
}
}
public class B extends A{
@Override
public void method1() {
System.out.println("method1 in B");
}
}
在A的子类B中重写了A的method1方法,而两个method1中输出的语句不同。