Anders describes the finer points language design
Why are methods in C# final by default versus virtual in Java? Why is the override
keyword required to override virtual methods? How did issues like
versioning affect the design of C# and the .NET Framework?
You can read all about it in Part
IV of Bill Venners interview series with Anders Hejlsberg.
Other Reading:
- Part I
[Part II](https://www.artima.com/intv/handcuffs.html)