close
在polymorphism中 , 我們可以將base class轉換成許多不同的derived class ,
我們也解釋說 , 這個意思就像是employee (base class) 可以是manager , 也可以是engineer , operator .
(manager , engineer , operator都是derieved class , 且他們都具有employee的身份).
因此 , 若我們將這些derieved class做為argument傳送到function時 , function那邊是可以用一個base class來接收
所有的derieved class.
但是我們要怎麼知道接收到的class是屬於哪一個derieved class呢?
一個方法就是利用virtual function , virtual function允許derieved class定義出自己所想要運作的內容.
那當我們用base class進行接收時 , 我們可以將這個reference (or pointer)呼叫該virtual function ,
這時就會判斷這個base class是由哪個derieved class所傳送 , 因而得到不一樣的結果.
(如果是用member function的話 , 其呼叫的結果會得到base class的function內容.)
全站熱搜