![]() |
| Photo by Hamza NOUASRIA on Unsplash |
所謂 is-a 代表能施加在父類別的每一件事情也要能夠施加在子類別身上,Scott Meyers 在書中舉了一個鮮明的例子
class Bird { public: virtaul void fly(); ... }; class Penguin : public Bird { ... };
在這個例子中, Penguin 是一種 Bird,但是 Penguin 並不會飛,這就違反了 is-a 的關係。因此,這樣的塑模方式並不正確。比較理想的方式是

