/**
* - - - (1)多型是方法的多型,不死屬性的多型(多型與屬性無關);
* - - - (2)多型的存在要有3個必要條件:繼承、方法重寫、父類引用指向子類物件;
* - - - (3)父類引用指向子類物件後,用該父類引用呼叫子類重寫的方法,此時多型就出現了
* *
*/public class testpolm
static void animalcry(animal a)
}class animal
}class dog extends animal
}class cat extends animal
}/**執行結果:
* 叫了一下!
* 汪汪汪
* 喵喵喵
* 喵喵喵
*/
3、instanceof運算子:
public class test
}
public class testpolm
static void animalcry(animal a)
}class animal
}class dog extends animal
}class cat extends animal
}
public class statictest
} class m
} class n extends m
}
上面執行的結果是「m」,也就是是m型別的引用呼叫的,如果修改main方法中的**:
n n = new n();
n.output();
那麼執行的結果是「n」,也就是n型別的引用呼叫的。
在物件導向程式設計中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要採用方法的重寫。方法重寫又稱方法覆蓋。
需要重寫方法是因為:父類的功能無法滿足子類的需求。
方法重寫的前提: 必須要存在繼承的關係。
方法的重寫: 子父類出了同名的函式,這個我們就稱作為方法的重寫。
什麼是時候要使用方法的重寫:父類的功能無法滿足子類的需求時。
方法重寫要注意的事項:
方法的過載:在乙個類中 存在兩個或者兩個 以上的同名函式,稱作為方法過載。
方法過載的要求
封裝繼承多型 繼承重寫過載
物件導向三大基本特徵 封裝 繼承 多型 封裝 首先封裝的意思就是將客觀事物封裝成抽象的類,封裝可以看做是乙個保護屏障,將實現細節全都隱藏起來,防止該類的 和資料被外部類定義的 隨機訪問。要訪問該類的 和資料,必須通過嚴格的介面控制。他的優點在於1.良好的封裝能夠減少耦合。2.類的內部結構可以自有修改...
重寫,過載,多型
override是重寫 覆蓋 了乙個方法,以實現不同的功能。一般是用於子類在繼承父類時,重寫 重新實現 父類中的方法。class a public b overload是過載,一般是用於在乙個類內實現若干過載的方法,這些方法的名稱相同而引數形式不同。void add void add int a 繼...
多型 重寫 過載。
多型 就是允許不同的類的物件對同乙個訊息做出不同的響應。根據傳送物件的不同採用不同的行為方式。比如演奏鋼琴時呼叫play 函式後返回的訊息是piano。演奏手風琴時呼叫play 函式後返回的訊息是accordion。這就是多型。過載就是除了引數的個數或者引數的型別不同外,其他都相同的多個方法。比如 ...