Tag: 抽象的

Swift类的方法必须由子类重写

有没有一个标准的方法来做一个“纯虚函数”在Swift中,即。 一个必须被每个子类重写,如果不是,会导致编译时错误?

为什么C#接口方法没有被声明为抽象的或虚拟的?

接口中的C#方法是在不使用virtual关键字的情况下声明的,并且在派生类中override而不使用override关键字。 这是有原因吗? 我认为这只是一种语言方便,显然CLR知道如何处理这个问题(方法在默认情况下不是虚拟的),但是还有其他的技术原因吗? 这是派生类生成的IL: class Example : IDisposable { public void Dispose() { } } .method public hidebysig newslot virtual final instance void Dispose() cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Example::Dispose 请注意,该方法在IL中被声明为virtual final 。