C#基础 Virtue跟New Virtue
NEW还是不错的,主要用于版本控制。
基于以下场景:
A公司拥有ClassA
B公司向A公司购买了ClassA
B公司在ClassA的基础上实现了ClassB
B公司在ClassB中增加了ClassA中没有的比如Sort方法并定义为virtual方法
某天A公司的新版本中增加了Sort方法
这时B公司就需将Sort方法改为new virtual方法
new virtual 是隐藏了基类的同名方法,同时说明该类的派生类可以重写该方法。
在派生类中 你写new virtual和virtual没有任何区别,两者都是隐藏基类同名方法,只不过后者有一个警告而已。这和一般的 new methordname和methordname一样。
继承是为了复用,多态是为了解耦。能够复用,并且解除了耦合,那么面向对象就能够高效的应对需求的变化。