1. 程式人生 > 其它 >多型在實際開發中的作用

多型在實際開發中的作用

通過一個例子來看:

主人餵養寵物


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等。這其中運用了多型來實現,多型是面對抽象的終於實現途徑。

多型可以降低程式的耦合度,提高程式的擴充套件力。