Question

Among object-oriented languages, one feature that varies considerably is whether the language allows multiple inheritance. C++...

Among object-oriented languages, one feature that varies considerably is whether the language allows multiple inheritance. C++ does but Ada does not. Java takes a middle ground approach of allowing multiple inheritance of interfaces but not classes. Using a C++ example, illustrate some of the complexities that multiple inheritance introduces. How does C++ deal with them? Why does Java's middle ground approach offer some of the benefits of multiple inheritance while avoids its problems.

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Multiple inheritance is a feature of some object-oriented computer programming languages in which an object or class can inherit characteristics and features from more than one parent object or parent class. It is distinct from single inheritance, where an object or class may only inherit from one particular object or class.

In C++ language suppose there are four classes A, B, C and D.

class A {

void display()

{

//some code

}

}

class B : public A{

void display()

{

//write your code

}

}

class C : public A{

void display()

{

//write your code

}

}

class D : public B, public C{

//It will contains two display() functions

}

Class A is parent of class B and C Now when class D will be inherited from both Class B and C. Now class D contains two copies of all the functions and data members of class A. One copy comes from class B and another copy comes from class C. which will confuse the compiler to import which one? So this causes Diamond problem and C++ solves it by using virtual keyword with them and thus telling the compiler which one to inherit.

class A {

void display()

{

//write your code

}

}

class B : virtual public A{

void display()

{

//write your code

}

}

class C : virtual public A{

void display()

{

//write your code

}

}

class D : public B, public C{

// it will contains one display() functions

}

Java does not support multiple inheritance it introduced the interface concept rather then allowing multiple inheritance. Interfaces can provide default implementation of methods. And a class can implement two or more interfaces.There is no ambiguity in this case.

interface A {

default void display();

}

interface B {

default void display();

}

class C implements A, B {

public void display(){

//write your code

}

}

Add a comment
Know the answer?
Add Answer to:
Among object-oriented languages, one feature that varies considerably is whether the language allows multiple inheritance. C++...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • please answer this after reading the article What is the actual problem? What are the known...

    please answer this after reading the article What is the actual problem? What are the known facts? What decision is to be made? How the problem ought to be solved? What are the alternatives? What are your recommendations? New AI tools make BI smarter — and more useful Data science democratized: What used to take data scientists months to prepare may soon be put together in a few days by data-astute business users. By Maria Korolov, Contributing Writer, CIO |...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT