作为.NET的全新版本,只是为了向我自己澄清:
虚方法是指动态还是静态对象类型?
Base myObject = new Derived();
myObject.Foo();
调用派生类的Foo()(假设Foo()在Base中是虚拟的并在Derived中被覆盖)?
答案 0 :(得分:3)
你是对的。
术语“静态”和“动态”类型在这里是错误的。这里的一切都是静态输入的。
答案 1 :(得分:3)
是的,由于Foo()
被覆盖,因此它是派生类' Foo()你打算打电话!
我引用MSDN
虚拟功能是您期望的成员功能 在派生类中重新定义。当您引用派生类对象时 使用指针或对基类的引用,可以调用 该对象的虚函数并执行派生类 功能的版本。