重载(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 子类方法的方法名称与参数列表与父类方法都相同
@Override
public void hello(){
System.out.println("hello from child");
}
}
重载是编译期(Compilation Period)概念: 在编译时根据参数变量的类型判断应该调用哪个方法;
重写是运行时(Runtime)概念: 在运行的时候,根据引用变量所指向的实际对象的类型来调用方法。