对于NEW和OVERRIDE关键应该在virtual上,需要明白,new 为覆盖,本意我不想要你基类的东西,我要我自己写的,即以子类中以new关键字声明的定义的方法已经与基类中的同名称方法不相关了,而override只是想改写一下子从基类传下来的方法,因为你基类遗留下来的东西已不太适合我了,需要改一下,以满足我自己的要求.所以总的来说new可以理解成子类一点都不想要基类遗留我的东西,而override只是觉得应该改变一下基类遗留下来的东西,加工一下.(可以想一下封建的老子年代和当今儿子年代,可能的不同思想) 在继承关系中所有的方法都忠于于调用与继承相关的东西,从new和override调用基类的指针指向就知道这点,不过我这里说的是c++情况,在c#中一般不要用指针不过他们的原理相同. |