25
Interface in Interface in JAVA JAVA Presented By : Presented By : Mr. Dheeraj Kumar Singh Assistant Professor I.T. Department, Faculty of Engg., Parul University, Vadodara Gujarat

Interface in java By Dheeraj Kumar Singh

Embed Size (px)

Citation preview

Page 1: Interface in java By Dheeraj Kumar Singh

Interface in JAVAInterface in JAVA

Presented By :Presented By : Mr. Dheeraj Kumar Singh Assistant Professor I.T. Department, Faculty of Engg., Parul

University, Vadodara, Gujarat

Page 2: Interface in java By Dheeraj Kumar Singh

OutlineOutline Introduction to Interface Multiple Inheritance – Example Why Interfaces are needed Java's Interface Concept Syntax Semantic Rules for Interfaces Example: An Interface for Shape Classes Extending Interface Abstract class and Interface Benefits of Interfaces Java's Most used Interfaces

2

Page 3: Interface in java By Dheeraj Kumar Singh

IntroductionIntroduction toto InterfaceInterface

3

In General, An interface is a device or system that unrelated entities use to interact. - The English language is an interface between two people.- A remote control is an interface between you and a television.

Page 4: Interface in java By Dheeraj Kumar Singh

IntroductionIntroduction toto InterfaceInterface

4

In Computing, An interface is a shared boundary across which two or more components of a computer system exchange information.

- The exchange can be between software, hardware, humans and combinations of these.

Interface/Medium

Page 5: Interface in java By Dheeraj Kumar Singh

5

In Object oriented programming,

- An interface is a common means for unrelated objects to communicate with each other.

In Java,

- An interface is a way through which unrelated objects use to interact with one another.

- Using interface, you can specify what a class must do, but not how it does it.

- It is not a class but a set of requirements for classes that implement the interface

IntroductionIntroduction toto InterfaceInterface

Page 6: Interface in java By Dheeraj Kumar Singh

Multiple Inheritance Multiple Inheritance - Example- Example

departmentcgpa()

Studentdepartment

salary()

Employee

Person Name

displayDetail()

TeachingAssistantTeachingAssistant

For a teaching assistant, we want the properties from both Employee and Student.

6

Page 7: Interface in java By Dheeraj Kumar Singh

Problems with Multiple InheritanceProblems with Multiple InheritanceConsider following declearation:

ta = new TeachingAssistant(); ta.department;

Name clash problem: Which department does ta refers to?Combination problem: Can department from Employee and Student be combined in Teaching Assistant? Selection problem: Can you select between department from Employee and department from Student? Replication problem: Should there be two departments in TeachingAssistent?

7

Page 8: Interface in java By Dheeraj Kumar Singh

Why Interfaces are neededWhy Interfaces are needed

• Multiple Inheritance in JAVA is not allowed – cannot extend more than one class at a time.

• An object may need IS-A relationships with many type.

Politician

Citizen

Father

President

8

Page 9: Interface in java By Dheeraj Kumar Singh

Solution for multiple inheritance in Solution for multiple inheritance in JAVAJAVA

public class Person extends Citizen implements Father, Politician, President {}

public interface Politician {public void joinParty();

}

public class Citizen {}

public interface Father {public void care();

}

public interface President {public void winPoll();

}

public class Person {} 9

Page 10: Interface in java By Dheeraj Kumar Singh

10

• An interface defines a protocol of behavior as a collection of method definitions (without implementation) and constants, that can be implemented by any class.

• A class that implements the interface agrees to implement all the methods defined in the interface.

• If a class includes an interface but does not implement all the methods defined by that interface, then that class must be declared as abstract.

Java's Interface Concept

Page 11: Interface in java By Dheeraj Kumar Singh

SyntaxSyntaxThe Declaration of Interface consists of a keyword interfaceinterface, its name, and the members.interface InterfaceName {// constant declarationstatic final type variableName = value;// method declarationreturntype methodname (argumentlist);}The Class that Implements Interface called as Implementation Class uses keyword implementsimplements:class classname implementsimplements InterfaceName {... }

11

Page 12: Interface in java By Dheeraj Kumar Singh

12

• InstantiationDoes not make sense on an interface. Interfaces are not classes. You can never use the new operator to instantiate an interface.

public interface Comparable {. . . }

Comparable x = new Comparable( );• Data Type

An interface can be used as a type, like classes. You can declare interface variables

class Employee implements Comparable {. . . }Comparable x = new Employee( );

Semantic Rules for InterfacesSemantic Rules for Interfaces

Page 13: Interface in java By Dheeraj Kumar Singh

13

• Access modifiers

An interface can be public or “friendly” (default).

All methods in an interface are by default abstract and public.

- Static, final, private, and protected cannot be used.

All variables (“constants”) are public static final by default

-Private, protected cannot be used.

Semantic Rules for InterfacesSemantic Rules for Interfaces

Page 14: Interface in java By Dheeraj Kumar Singh

14

Example: An Interface for Shape Example: An Interface for Shape ClassesClasses

• Creating classes to represent rectangles, circles, and triangles and compute their area and perimeter

It may seem as there is an inheritance relationship here, because rectangle, circle, and triangle are all shapes.

But code sharing is not useful in this case because each shape computes its area and perimeter in a different way.

Page 15: Interface in java By Dheeraj Kumar Singh

15

Define Interface ShapeDefine Interface Shape

• A better solution would be to write an interface called Shape to represent the common functionality (to compute an area and a perimeter ) of all shapes:

public interface Shape { public double getArea(); public double getPerimeter();}

Page 16: Interface in java By Dheeraj Kumar Singh

16

Class Rectangle implements Class Rectangle implements interface Shape interface Shape

public class Rectangle implements Shape { private double width; private double height; // Constructs a new rectangle with the given dimensions. public Rectangle(double width, double height) { this.width = width; this.height = height; } // Returns the area of this rectangle. public double getArea() { return width * height; } // Returns the perimeter of this rectangle. public double getPerimeter() { return 2.0 * (width + height); }}

Page 17: Interface in java By Dheeraj Kumar Singh

17

Class Circle implements interface Class Circle implements interface ShapeShape

public class Circle implements Shape { private double radius; // Constructs a new circle with the given radius. public Circle(double radius) { this.radius = radius; } // Returns the area of this circle. public double getArea() { return Math.PI * radius * radius; } // Returns the perimeter of this circle. public double getPerimeter() { return 2.0 * Math.PI * radius; }}

Page 18: Interface in java By Dheeraj Kumar Singh

18

Class Class Triangle Triangle implements implements interface Shapeinterface Shape

public class Triangle implements Shape { private double a; private double b; private double c; // Constructs a new Triangle given side lengths. public Triangle(double a, double b, double c) { this.a = a; this.b = b; this.c = c; } // Returns this triangle's area using Heron's formula. public double getArea() { double s = (a + b + c) / 2.0; return Math.sqrt(s * (s - a) * (s - b) * (s - c)); } // Returns the perimeter of this triangle. public double getPerimeter() { return a + b + c; }}

Page 19: Interface in java By Dheeraj Kumar Singh

Class Class Mensuration with Main Mensuration with Main FunctionFunction

class Mensuration{public static void main (String [] arg){// Rectangle object Rectangle r = new Rectangle(10,20); // Rectangle object System.out.println("Area of Rectangle =" +(r.getArea()));System.out.println("Perimeter of Rectangle =" +(r.getPerimeter()));Circle c = new Circle(10); // Circleobject System.out.println("Area of Circle =" +(c.getArea()));System.out.println("Perimeter of Circle =" +(c.getPerimeter()));Triangle t = new Triangle(3,4,5); // Triangle object System.out.println("Area of Triangle =" +(t.getArea()));System.out.println("Perimeter of Triangle =" +(t.getPerimeter()));}}

19

Page 20: Interface in java By Dheeraj Kumar Singh

Output ScreenOutput Screen

20

Page 21: Interface in java By Dheeraj Kumar Singh

Extending InterfaceExtending Interface• One interface can inherit another interface using the

extends keyword and not the implements keyword. • For example,

interface A extends B { }

• Obviously, any class which implements a “sub-interface” will have to implement each of the methods contained in it’s “super-interface” also.

21

Page 22: Interface in java By Dheeraj Kumar Singh

Abstract class and InterfaceAbstract class and Interface

Abstract class InterfaceA programmer uses an abstract class when there are some common features shared by all the objects.

A programmer writes an interface when all the features have different implementations for different objects.

Multiple inheritance not possible (Multiple “parent” interfaces)

Multiple inheritance possible (Only one “parent” class)

An abstract class contain both abstract and concrete(non abstract) method

An interface contain only abstract method

In abstract class, abstract keyword is compulsory to declare a method as an abstract

abstract keyword is optional to declare a method as an abstract in interface

An abstract class can have protected, public abstract method

An interface can have only public abstract method

Abstract class contain any type of variable

Interface contain only static final variable (constant)

22

Page 23: Interface in java By Dheeraj Kumar Singh

23

Benefits of Interfaces Benefits of Interfaces

• Following concepts of object oriented programming can be achieved using Interface in JAVA.

1.Abstraction2.Multiple Inheritance3.polymorphism

Page 24: Interface in java By Dheeraj Kumar Singh

Some of Java's Most used Some of Java's Most used InterfacesInterfaces

• IteratorTo run through a collection of objects without knowing how the

objects are stored, e.g., array.• CloneableUsed to make a copy of an existing object via the clone() method

on the class Object. This interface is empty.• SerializableUsed to Pack a group of objects such that it can be send over a

network or stored to disk. This interface is empty.• ComparableThe Comparable interface contains a compareTo method, and this method must take an Object parameter and return an integer

24

Page 25: Interface in java By Dheeraj Kumar Singh

25

Follow me on : https://www.facebook.com/dks.ind Email : [email protected]

: [email protected] : [email protected]