interfaces
interfaces
CLASS INTERFACE
Variables can be instantiated and objects Objects cannot be created.
can be created. Variables can be initialized.
Class contains concrete methods(with Interface can contain only abstract,default
implementation ) . and static methods.
Access specifiers used: private, protected Only access specifier used is: public
and public.
Does not support multiple inheritance. Supports multiple inheritance.
extends • class->class
implements • class->interface
extends • interface->interface
Defining an interface
• interface keyword is used
• Example
import java.lang.* ;
public interface Animal
{
//final, static fields
int legs=4;
//abstract method declarations
void eat();
}
Implementing interfaces
• The class must implement all methods in an interface.
• Example
interface Animal{
void eat();
}
public class Mammal implements Animal {
public void eat() {
System.out.println(“Mammal eats”); }
}
class Main{
public static void main(String args[]) {
Mammal m= new Mammal();
m.eat();
}
}
OUTPUT: Mammal eats
Variables in interface
interface left{
int i=10;
}
interface right{
int j=100;
}
class test implements left, right {
public static void main(String args[]) {
System.out.println(left.i);
System.out.println(right.i);
}
}
OUTPUT: 10
100
Extending interfaces
• One interface can inherit another interface by using extends keyword.
interface Teacher {
void display1(); }
interface Student {
void display2(); }
interface T_S extends Teacher, Student {
void display3(); }
class college implements T_S {
public void display1() {
System.out.println(“Hi, I am teacher “); }
public void display2() {
System.out.println(“Hi, I am student “); }
public void display3() {
System.out.println(“Hi, I am teacher_student “); }
}
class Main
{
public static void main(String args[])
{
College c =new College();
c.display1();
c.display2();
c.display3();
}
}
OUTPUT: Hi, I am teacher
Hi, I am student
Hi, I am teacher_student
Multiple Inheritance
If a class extends multiple interfaces, or an interface extends multiple
interfaces, known as multiple inheritance.
interface A {
void display(); }
interface B {
void show(); }
class C implements A,B {
public void display(){
System.out.println(“Hello”); }
public void show(){
System.out.println(“World”); }
class Main {
public static void main(String args[]) {
C obj=new C();
obj.display();
obj.show();
}
}
Output: Hello
World