重载(Overloading)
方法名称相同,但是方法的参数列表不同
public void hello(){System.out.println("hello");
}//重载 overloading
public void hello(String str){System.out.println("hello" + str);
}//方法名称相同 都是 ‘hello’
//参数列表不同 一个没有参数 一个有一个字符串类型的参数str
重写(Overriding)
子类重写父类方法,子类重写的方法与父类的方法的方法名称和参数列表都相同
class Father{public void hello(){System.out.println("hello from father");}
}class Child extends Father{//重写 overriding 子类方法的方法名称与参数列表与父类方法都相同@Overridepublic void hello(){System.out.println("father from child"); }}
重载是一个编译期(Compilation Period)概念: 在编译时根据参数变量的类型判断应该调用哪个方法;
重写是一个运行时(Runtime)概念: 在运行的时候,根据引用变量所指向的实际对象的类型来调用方法。