你明白多態就明白這個問題了,給你舉個例子吧:比如有個抽象類叫動物,他有“叫”的動作,繼承他的類都是普通類,有貓、狗...各種動物,他們實現叫的方法都不同。現在有個需求:就是實現各種動物“叫”的動作,為了動態實現,就需要把動物做為形參傳過去,依照多態的特性“任何父類出現的地方,都可以替換成子類”,我們就可以將真正實現了“叫”這個方法的實現類傳過去而執行實現類里的方法了,以下是實例代碼:
//動物類
public abstract class Animal(){
public void shout();
}
//實現類:狗
public class Dog extends Animal(){
public void shout(){
System.out.println("汪");
}
}
//實現類:貓
public class Cat extends Animal(){
public void shout(){
System.out.println("瞄");
}
}
//執行類
public class Opration(){
//定一個以Animal為參數的方法
public void ExecuteTest(Animal animal){
//只調用“叫”的方法
animal.shout();
}
}
//測試類
public class Test(){
//實現main()
public static void main(String[] args) {
//實例化
Dog dog=new Dog();
Cat cat=new Cat();
Opration op=new Opration();
//接下來要用多態了
//這里是狗“叫”的放法
op.ExecuteTest(dog);
//這里是貓“叫”的方法
op.ExecuteTest(cat);
}
}
希望能對你有幫助。
我這沒用任何工具,要是有錯誤,請見諒。
