Re: [問題] 請教關於多型的觀念
※ 引述《cjcat2266 (CJ Cat)》之銘言:
: 我記得在run-time時決定要呼叫哪一個版本的method
: 在C++好像有個術語叫做dynamic linking?
這叫 late-binding
dynamic linking 是另一樣不同的東西.
Java 裡面也是一樣叫 late binding
: 總之它的概念就是,儘管你的animal變數是Animal type
: 但是因為它所指到的物件有override原本的makeSound() method
: 於是override版本的method就會被使用,而不是原來在Animal裡面定義的版本
: 該呼叫哪個method是在run-time決定的
: compiler在編譯的時候,只知道要呼叫這個變數的makeSound() method而已
: 而不知道到時候會是什麼型態的物件的makeSound() method會被呼叫到
: 這個就是polymorphism的概念
: Strategy Pattern主要就是依靠polymorphism
GoF 的 Design Pattern 裡面超過八成都要依靠 polymorphism...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
討論串 (同標題文章)