C#的抽象类和方法,重载,覆盖,隐藏

 

 在C#程序中,如果不在父类的方法中添加virtual、abstract或者override描述符,那么编译器就会认为你不想在子类中覆 盖这个方法。如果我们同时去掉Children类中GetNumber()方法的override描述符,程序可以编译通过,但是这时就不是覆盖了,而是 C#中的“隐藏”关系。“隐藏”和“覆盖”具体区别就是,如果是“隐藏”,那么在通过Father类型的引用调用一个Children对象的 GetNumber()方法的时候,实际执行的部分是父类中的GetNumber()方法,而不是子类的。
    因此,可以简单的这么理解,“覆盖”就是重新实现了父类的方法,而“隐藏”只是把父类中的方法藏了起来,通过父类的引用来调用这个方法的时候,这个被“隐藏”的方法就被激活了。

 

Code

 

 

posted @ 2009-06-21 22:06  googolmao  阅读(697)  评论(0编辑  收藏  举报