Overload , Override , Polymorphism

  • 292
  • 0

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(); // 因為多型及覆寫,所以實際執行的方法為子類別的方法內容
  }
}