Reputation: 713
I am confused regarding a concept in multiple inheritance. I have three classes A, B and C.
Class A {
// ...
}
Class B extends A {
// ...
}
Class C extends B {
// ...
}
I know this is a bad practice of multiple inheritance and I also read java allows multiple inheritance through interfaces. But I am not getting any error in the above code. Please can anyone explain me with a clear example without using interface. Thanks!!
Upvotes: 3
Views: 350
Reputation: 97
The code you have written above is an example of Multilevel inheritance not Multiple Inheritance.
Multiple Inheritance is like :
class A extends B,C {
//this code is not valid in JAVA
}
And, if you want to use interfaces for implementing a structure like multiple inheritance, then you could use:
interface test_interface1{
/*all the methods declared here in this interface should be the part
** of the class which is implementing this current interface
*/
}
Similarly :
interface test_interface2{
}
So, create a class TestClass like :
class TestClass implements test_interface1,test_interface2 {
//now you have to use each and every method(s) declared in both the interfaces
// i.e. test_interface1 & test_interface2
}
You could also use a syntax like:
class TestClass extends AnyClass implements test_interface1,test_interface2 {
/* but do keep in mind - use extends keyword before implements
** and now you know you cannot use more than 1 class names with extends keyword
** in java.
*/
Upvotes: 2
Reputation: 10843
"Multiple inheritance" in Java basically means inheriting multiple interfaces, not inheriting multiple implementations.
Now, there is a new feature of Java 8 that allows you to do something like multiple inheritance of actual implementations, via interfaces and something called default methods. I would strongly encourage you to really master the basics of Java first before trying them. Once you are ready, here is a good tutorial on default methods.
Upvotes: 2
Reputation: 312344
Your code does not contain multiple inheritance, and is, indeed, legal Java syntax. Multiple inheritance refers to a case where a class directly extends two superclasses. For example:
public class MyClass extends MyFather, MyMother {
}
Note that this is, of course, illegal Java syntax.
Upvotes: 2
Reputation: 394156
This is not multi-inheritance. Each class has exactly one direct super class. If your example was considered multi-inheritance, you wouldn't be able to use the extends
keyword at all, since each class already extends by default the Object
class.
Multi-inheritence would be
class C extends A,B {}
And that's illegal in Java.
Upvotes: 2