Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9177589
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 17, 20262026-06-17T17:21:38+00:00 2026-06-17T17:21:38+00:00

In The C# Programming Language Krzysztof Cwalina states in an annotation: we explicitly decided

  • 0

In The C# Programming Language Krzysztof Cwalina states in an annotation:

we explicitly decided not to add support for multiple inheritance
[…] the lack of multiple inheritance forced us to add the concept of
interfaces, which in turn are responsible for problems with the
evolution of the framework, deeper inheritance hierarchies, and many
other problems.

Interfaces are a core concept to OO programming languages. I don’t follow the meaning of “forced us to add the concept of interfaces”

Does Krzysztof mean that certain design decisions had to be made regarding the use of interfaces where otherwise mulitple inheritance would be used? Or, does he mean that interface‘s were introduced to C# because of a lack of multiple inheritance? Can you provide an example?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-17T17:21:40+00:00Added an answer on June 17, 2026 at 5:21 pm

    An interface is simply a base class that has no data members and only defines public abstract methods. For example, this would be an interface in C++:

    class IFrobbable {
        public:
        virtual void Frob() = 0;
    }
    

    Therefore when MI is available as a language feature you can “implement” interfaces by simply deriving from them (again, C++):

    class Widget : public IFrobbable, public IBrappable {
        // ...
    }
    

    Multiple inheritance in the general case gives rise to many questions and problems that don’t necessarily have a single answer, or even a good one for your particular definition of “good” (dreaded diamond, anyone?). Multiple interface implementation sidesteps most of these problems exactly because the concept of “inheriting” an interface is a very constrained special case of inheriting a full-blown class.

    And this is where “forced us to add the concept of interfaces” comes in: you cannot do much OO design when constrained to single inheritance only, for example there are serious issues with not being able to reuse code when code reuse is in fact one of the most common arguments for OO. You have to do something more, and the next step is adding multiple inheritance but only for classes that satisfy the constraints of an interface.

    So, I interpret Krzysztof’s quote as saying

    Multiple inheritance in the general case is a very thorny problem that
    we could not tackle in a satisfactory manner given real-life
    constraints on the development of .NET. However, interface inheritance
    is both much
    simpler to tackle and of supreme importance in OOP, so we did put that
    in. But of course interfaces also come with their own set of problems,
    mainly regarding how the BCL is structured.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In The C++ Programming Language, Bjarne writes that the null pointer is not the
Which programming language is it easier to support developers in (namely developers that have
Is there a programming language that uses inflections (suffixing a word to add a
This is not programming language specific. I just need to understand how can I
In programming language like C#, java if a condition has multiple expressions with AND(&&)
Java is object oriented programming language.Inheritance is one of most important features. We use
In the C programming language: This I do not understand. Is it saying that
The C++ Programming Language : Special Edition states on page 431 that... For every
Programming language: JAVA / Android Thread Structure Main Thread (starts other treads) ---(multiple attributes)
Programming language: Java Ok, so I want to have a BufferedImage that keeps rotating

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.