多型在實際開發中的作用
阿新 • • 發佈:2021-10-02
通過一個例子來看:
主人餵養寵物
public class Master{
public void feed(Cat cat){
cat.eat();
}
}
class Cat{
public void eat{
System.out.println("小貓在吃魚。。。");
}
}
在上述的例子中,主人養了一隻貓並餵養它,但是後來主人又想養一隻狗了。
於是,我們需要在主人類中新新增一個feed(Dog dog),如果主人的需求越來越多(客戶的需求增加了),我們就需要不斷的修改主人類,這是不合適的。
軟體開發原則ocp(開閉原則:對擴充套件開放,對修改關閉。
修改越少越好。
於是我們可以在主人類中這樣寫程式碼
public class Master{
public void feed(Pet p){
p.eat();
}
}
class Pet{
public void eat{};
}
class Cat extends Pet{
public void eat{
System.out.println("小貓在吃魚。。。");
}
}
在主人類中使用一個寵物類,以後再養狗就可以繼承這個寵物類,然後重寫Pet類的eat()方法,主人就可以餵養狗了,不需要修改Master類了。
在上面的例子中,我們通過Pet類來使程式的擴充套件性更強,這就是面向抽象程式設計,面向一個抽象的寵物類,而不是一個個具體的Dog,Cat等。這其中運用了多型來實現,多型是面對抽象的終於實現途徑。
多型可以降低程式的耦合度,提高程式的擴充套件力。