I recently ran into a list of features that are being considered for addition in the next version of C#. One of them is called "default interface methods":
https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md
In short, it will allow you to define actual method implementations on the interfaces themselves meaning interfaces can now have implementations. Since this is the case, and C# classes can implement/inherit from multiple interfaces then why in the world would I ever use abstract classes?
The only thing that comes to my mind is that interfaces cannot have a constructor so maybe there is a need to run some logic in the abstract class constructor and that would justify defining an abstract class.
Is there any other scenario that anyone can think of?