昨天开始看C#,看到有关方法重写的地方发现,如果类A的方法test以后有被重写的需要,
那么就要使用virtual关键字标识,如下:
public [color=blue]virtual[/color] void test( )
然后,类B继承类A,并重写方法test的话,需要使用override关键字标识,如下:
public [color=blue]override[/color] void test( )
不知道为什么C#的设计者要做出这种限制,Java中就没有这种要求。
假设某个项目用了第三方的类库(假设该类库闭源),发现类库中某个类的某个方法功能需要扩展,
难道还要通知该类的作者,让他在相应方法的前面加上virtual关键字?
感觉这完全就是一种多余的限制,只会增加语法的复杂性。
不知谁有关于这种限制的好的解释。