Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        2年前关闭。
                                                                                            
                
        
我最近遇到了要考虑在下一版本的C#中添加的功能列表。其中之一称为“默认接口方法”:

https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md

简而言之,它将允许您在接口本身上定义实际的方法实现,这意味着接口现在可以具有实现。既然是这种情况,并且C#类可以从多个接口实现/继承,那么为什么我在世界上总是使用抽象类?

我唯一想到的是接口不能具有构造函数,因此也许需要在抽象类构造函数中运行一些逻辑,这将有理由定义一个抽象类。

还有其他人能想到的方案吗?

最佳答案

除了评论中提到的状态,

Base Class

您不能从基类继承接口。接口只能继承一个接口。您将需要抽象类来从其他一些类派生。而且由于您不能从类继承,所以您无法覆盖类方法。您可以在抽象类中覆盖它。

关于c# - 如果在C#8.0中实现了默认接口(interface)方法,为什么我还需要抽象类? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54569682/

10-09 06:03
查看更多