這里是父類引用指向一個子類對象(上轉型對象),這是一種多態的體現,例如:
public?class?Animal{
????public?void?say(){
????System.out.println("動物會叫");
????}
}
class?Dog?extends?Animal{
????public?void?say(){
????????System.out.println("汪汪汪~~");
????}
}
class?Snake?extends?Animal{
????public?void?say(){
????????System.out.println("嘶嘶嘶~~");
????}
}
class?Test{
????public?void?test(Animal?animal){
????????????animal.say();
????????}
????public?static?void?main(){
????????new?Test().test(new?Animal());//輸出動物會叫
????????//new?Test().test(new?Dog());//多態,輸出汪汪汪
????????//new?Test().test(new?Snake());//多態,輸出嘶嘶嘶
????}
}
還有就是接口回調:
public?interface?Animal{
?????void?say();
}
class?Dog?implements?Animal{
????public?void?say(){
????????System.out.println("汪汪汪~~");
????}
}
class?Snake?implements?Animal{
????public?void?say(){
????????System.out.println("嘶嘶嘶~~");
????}
}
class?Test{
????public?void?test(Animal?animal){
????????????animal.say();
????????}
????public?static?void?main(){
????????new?Test().test(new?Dog());//多態,輸出汪汪汪
????????new?Test().test(new?Snake());//多態,輸出嘶嘶嘶
????}
}