Java的Override覆寫機制是指,子類別可以重新改寫父類別的方法,因此,子類別可以擁有不同於父類別的行為。
※當子類別取了一個與父類別相同名稱的方法,呼叫子類別時會是執行子類別的方法。
class Animal{
void makeSound(){
System.out.println("Makes a sound");
}
}
class Dog extends Animal{
void makeSound(){
System.out.println("Dog barks");
}
}
Java的多載Overload指的是,在同一個類別class當中,可以將N個方法取為同名,只要參數不同,Java就能自動調用其方法。
參數不同的定義:
多載的好處:
Class Calculator {
int add ( int x , int y ){
return x + y;
}
int add ( int x , int y , int z ){
return x + y + z;
}
double add ( double x , double y ){
return x + y;
}
}
當同個類別中,有兩個以上的建構子,則可使用this()來呼叫另一個建構子,this()會出現在第一行,且是在overloading的建構子設計中。
這對創建物件、預設初始值的安排會更加有彈性。
Public class Pen{
private String brand;
private String model;
private int price;
public Pen(String brand, String model){
this.brand = brand;
this.model = model;
}
public Pen(String brand, String model, int price){
this(brand, model); //呼叫前一個的建構子
this.price = price;
}
}