我明白了赫赫
没有改写A中的F()

解决方案 »

  1.   

    在第一种方式里class B的F Method是一个抽象被改写自A的方法,没有实现,所以有B衍生的类C方法F
    是编译时类型 A 和运行时类型 C 的实例根据重载决策派生程度最大的那个实现,所以输出结果应该是C.F,
    而第二种方式class B的F Method是一个抽象,实现继承自A,按照虚方法实现的重载决策
    编译时类型 A 和运行时类型 C 的实例根据重载决策派生程度最大的那个实现应该是A.F可能说的太抽象啦(表达能力不好^_^),如果那位有疑问,可以参考msdn的重载决策,虚方法,抽象方面的帮助。