Thursday, 14 January 2016

Java Tutorial : Multiple Inheritance by Interface

🚀 Ready to Become a Java Pro?

Subscribe to our channel for the simplest coding tutorials on the web. Let's build something great together!

SUBSCRIBE TO RAM N JAVA

Understanding Multiple Inheritance in Java

In the world of Object-Oriented Programming, Multiple Inheritance allows a class to inherit features from more than one parent. While many languages allow this directly, Java takes a unique and safer approach. Let's break it down.

Why Doesn't Java Allow Multiple Inheritance with Classes?

Java designers decided to block multiple inheritance with classes to avoid the "Diamond Problem." This happens when two parent classes have methods with the same name, leaving the compiler confused about which one to use. By limiting classes to only one parent, Java remains clean and bug-free.

The Solution: Interfaces

Even though you can't have two parent classes, you can have multiple parent interfaces! This is the standard way to achieve multiple inheritance in Java. Because interfaces don't provide the actual code (just the method names), there is no confusion for the compiler.

Key Rules for Beginners

  • The Keyword: Use implements followed by a comma-separated list of interfaces.
  • The Contract: Your class must provide the implementation (the actual code) for all methods defined in all those interfaces.
  • Flexibility: A single Java class can implement any number of interfaces, giving it multiple "behaviors."

Check Out These Related Lessons:

Dive deeper into Java concepts with these other tutorials from Ram N Java:


Click here to watch in Youtube :
https://www.youtube.com/watch?v=UYejTUnmNb0&list=UUhwKlOVR041tngjerWxVccw

Click the below Image to Enlarge
Java Tutorial : Multiple Inheritance by Interface 
Java Tutorial : Multiple Inheritance by Interface 
InterfaceA.java
public interface InterfaceA
{
    void sayHi();       
}
InterfaceB.java
public interface InterfaceB
{
    void sayBye();
}
MyClass.java
public class MyClass implements InterfaceA, InterfaceB
{

    @Override
    public void sayHi()
    {
        System.out.println("Hi");

    }

    @Override
    public void sayBye()
    {
        System.out.println("Bye");
    }

}
InterfaceTest.java
public class InterfaceTest
{

    public static void main(String[] args)
    {
        MyClass myclassObj = new MyClass();
        myclassObj.sayHi();
        myclassObj.sayBye();
    }

}
Output
Hi
Bye
Click the below link to download the code:
https://sites.google.com/site/javaee4321/java/InterfaceDemo-MultipleInheritanceBY-I-Class-App.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/InterfaceDemo-MultipleInheritanceBY-I-Class-App

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/fa67e02bcd9efeae1c2ea3019677c5252e4db5f7/BasicJava/InterfaceDemo-MultipleInheritanceBY-I-Class-App/?at=master

See also:
  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • 1 comment:

    1. Getting Error The type InterfaceA cannot be a superinterface of MyClass; a superinterface must be an interface

      ReplyDelete

    Tutorials