不是。它输出了Hi, I am a human。这很糟糕,当我们指着一个人要他说出自己的名字的时候,他却告诉我们他“是一个人”,而不是说出自己的名字。出现这样的问题原因在于,用基类的指针指向公有派生类,可以访问派生类从基类中继续的成员函数。但假如派生类中也有同名的函数,则结果仍然是访问基类的同名函数,而不是派生类本身的函数。而事实上,我们希望的是由一个对象的真实类型来决定到底该调用这些同名函数中的哪一个,就是说,这样的决议是动态(Dynamic)的。或者我们可以说,我们希望当一个对象是子类型时,它的同名函数在子类中的实现覆盖(override)掉基类的实现。