Overload , Override , Polymorphism
多載(Overload)指在一個類別(class)中,定義多個名稱相同,但參數(Parameter)不同的方法(Method)。
public void hello(){}
public void hello(int i){}
public void hello(int i, int j){}
覆寫(Override)是指子類別可以覆寫父類別的方法內容,使該方法擁有不同於父類別的行為。
public class Animal {
public void move(){
System.out.println("move");
}
}
public class Dog extends Animal{
@Override
public void move(){
System.out.println("run"); // 覆寫父類別的方法內容
}
}
多型(Polymorphism)是指父類別可透過子類別衍伸成多種型態,而父類別為子類別的通用型態,
再透過子類別可覆寫父類別的方法來達到多型的效果,也就是同樣的方法名稱會有多種行為。
public class Main {
public static void main(String[] args){
Animal dog = new Dog(); // 子類別Dog物件分派至Animal型別變數dog
Animal bird = new Bird(); // 子類別Bird物件分派至Animal型別變數bird
act(dog); // run
act(bird); // fly
}
public static void act(Animal animal){ // 因為多型,所以參數以通用的父類別傳入
animal.move(); // 因為多型及覆寫,所以實際執行的方法為子類別的方法內容
}
}