Thursday, March 3, 2016

Interface in Java-2


Interface in Java-2


Multiple inheritance in Java by interface

If a class implements multiple interfaces, or an interface extends multiple interfaces
i.e. known as multiple inheritance.



 interface Printable{ 
    void print(); 
    } 
     
    interface Showable{ 
    void show(); 
    } 
     
    class A implements Printable,Showable{ 
     
    public void print(){System.out.println("Hello");} 
    public void show(){System.out.println("Welcome");} 
     
    public static void main(String args[]){ 
    A obj = new A(); 
    obj.print(); 
    obj.show(); 
     } 
    } 

Output:Hello
       Welcome


Q) Multiple inheritance is not supported in case of class but it is supported in case of interface,
why?


As we have explained in the inheritance chapter, multiple inheritance is not supported in case of class. But it is supported in case of interface because there is no ambiguity as implementation is provided by the implementation class. For example:

    interface Printable{ 
    void print(); 
    } 
     
    interface Showable{ 
    void print(); 
    } 
     
    class A implements Printable,Showable{ 
     
    public void print(){System.out.println("Hello");} 
     
    public static void main(String args[]){ 
    A obj = new A(); 
    obj.print(); 
     } 
    } 

Output:Hello

As you can see in the above example, Printable and Showable interface have same methods but its
implementation is provided by class A, so there is no ambiguity.

Note: A class implements interface but One interface extends another interface .

    interface Printable{ 
    void print(); 
    } 
     
    interface Showable extends Printable{ 
    void show(); 
    } 
     
    class A implements Showable{ 
     
    public void print(){System.out.println("Hello");} 
    public void show(){System.out.println("Welcome");} 
     
    public static void main(String args[]){ 
    A obj = new A(); 
    obj.print(); 
    obj.show(); 
     } 
    } 

Output:Hello
       Welcome


Que) What is marker or tagged interface ?

An interface that have no member is known as marker or tagged interface.
For example: Serializable, Cloneable, Remote etc. They are used to provide some essential
information to the JVM so that JVM may perform some useful operation.


    //How Serializable interface is written? 
     
    public interface Serializable{ 
    } 

Nested Interface

Note: An interface can have another interface i.e. known as nested interface. We will learn
it in detail in the nested classes chapter. For example:


    interface printable{ 
     void print(); 
     interface MessagePrintable{ 
       void msg(); 
     } 
    }

No comments:

Post a Comment