C++
class base
{
//...
};
class subclass
{
//...
};
base test;
subclass testsub;
test = testsub;
test.fun();
這樣的話testsub轉換成test丟失了部分數據,因此調用fun()時其實是調用base:fun();
通過base class的指針或者是引用纔可以實現多態的特性。
base * testagain = testsub;
testagain->fun(); //OK