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 246571
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T21:11:01+00:00 2026-05-11T21:11:01+00:00

I know that multiple inheritance is not allowed in Java and C#. Many books

  • 0

I know that multiple inheritance is not allowed in Java and C#. Many books just say, multiple inheritance is not allowed. But it can be implemented by using interfaces. Nothing is discussed about why it is not allowed. Can anybody tell me precisely why it is not allowed?

  • 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-05-11T21:11:01+00:00Added an answer on May 11, 2026 at 9:11 pm

    The short answer is: because the language designers decided not to.

    Basically, it seemed that both the .NET and Java designers did not allow multiple inheritance because they reasoned that adding MI added too much complexity to the languages while providing too little benefit.

    For a more fun and in-depth read, there are some articles available on the web with interviews of some of the language designers. For example, for .NET, Chris Brumme (who worked at MS on the CLR) has explained the reasons why they decided not to:

    1. Different languages actually have different expectations for how MI
      works. For example, how conflicts are
      resolved and whether duplicate bases
      are merged or redundant. Before we can
      implement MI in the CLR, we have to do
      a survey of all the languages, figure
      out the common concepts, and decide
      how to express them in a
      language-neutral manner. We would also
      have to decide whether MI belongs in
      the CLS and what this would mean for
      languages that don’t want this concept
      (presumably VB.NET, for example). Of
      course, that’s the business we are in
      as a common language runtime, but we
      haven’t got around to doing it for MI
      yet.

    2. The number of places where MI is truly appropriate is actually quite
      small. In many cases, multiple
      interface inheritance can get the job
      done instead. In other cases, you may
      be able to use encapsulation and
      delegation. If we were to add a
      slightly different construct, like
      mixins, would that actually be more
      powerful?

    3. Multiple implementation inheritance injects a lot of complexity into the
      implementation. This complexity
      impacts casting, layout, dispatch,
      field access, serialization, identity
      comparisons, verifiability,
      reflection, generics, and probably
      lots of other places.

    You can read the full article here.

    For Java, you can read this article:

    The reasons for omitting multiple
    inheritance from the Java language
    mostly stem from the “simple, object
    oriented, and familiar” goal. As a
    simple language, Java’s creators
    wanted a language that most developers
    could grasp without extensive
    training. To that end, they worked to
    make the language as similar to C++ as
    possible (familiar) without carrying
    over C++’s unnecessary complexity
    (simple).

    In the designers’ opinion, multiple
    inheritance causes more problems and
    confusion than it solves. So they cut
    multiple inheritance from the language
    (just as they cut operator
    overloading). The designers’ extensive
    C++ experience taught them that
    multiple inheritance just wasn’t worth
    the headache.

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

Sidebar

Ask A Question

Stats

  • Questions 115k
  • Answers 115k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer it really depends on the services you are trying to… May 11, 2026 at 10:29 pm
  • Editorial Team
    Editorial Team added an answer Since this seems to be a popular question and the… May 11, 2026 at 10:29 pm
  • Editorial Team
    Editorial Team added an answer Take a look at this MSDN article. And this, Improving… May 11, 2026 at 10:29 pm

Related Questions

I'm running Python 2.5, so this question may not apply to Python 3. When
I am trying to write the HTML and CSS for an internal webapp properly.
For Example: Let's say that I want to return a view that displays a
I'm trying to understand what kind of memory hit I'll incur by creating a
We have a client (who has a client, who has a client) who is

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.