SlideShare a Scribd company logo
Interfaces in JAVA
By Jai Vikas Marathe
Agenda
What is Interface?
Why Interface?
Interface as a Type
Interface vs. Class
Defining an Interface
Implementing an Interface
Implementing multiple Interface's
Inheritance among Interface's
Rewriting an Interface
What is an Interface?
What is an Interface?
It defines a standard and public way of specifying the
behaviour of classes
All methods of an interface are abstract methods
Example: Interface
// Note that Interface contains just set of
method
// signatures without any implementations.
// No need to say abstract modifier for each
method
// since it assumed.
public interface Relation {
public boolean isGreater( Object a, Object b);
public boolean isLess( Object a, Object b);
Example 2: Interface
public interface OperateCar {
// constant declarations, if any
// method signatures
int turn(Direction direction, double radius,
double startSpeed, double endSpeed);
int changeLanes(Direction direction, double
startSpeed, double endSpeed);
int signalTurn(Direction direction, boolean
signalOn);
int getRadarFront(double distanceToCar, double
speedOfCar);
Why Interface?
Why do we use Interfaces?
Reason #1
To reveal an object's programming interface
(functionality of the object) without revealing its
implementation
Why do we use Interfaces?
Reason #2
To have unrelated classes implement similar methods
(behaviours)
Example:
Class Line and class MyInteger
Interface:
checkIsGreater(Object x, Object y)
checkIsLess(Object x, Object y)
checkIsEqual(Object x, Object y)
Why do we use Interfaces?
Reason #3
To model multiple inheritance
Interface vs. Abstract Class
All methods of an Interface are abstract methods while
some methods of an Abstract class are abstract methods
An interface can only define constants while abstract
class can have fields
Interfaces have no direct inherited relationship with any
particular class, they are defined independently
Interface as a
Type
Interface as a Type
When you define a new interface, you are defining a
new reference type
You can use interface names anywhere you can use any
other type name
If you define a reference variable whose type is an
interface, any object you assign to it must be an instance
of a class that implements the interface
Example: Interface as a Type
Let's say Person class implements PersonInterface
interface
You can do
– Person p1 = new Person();
– PersonInterface pi1 = p1;
– PersonInterface pi2 = new Person();
Interface vs. Class
Interface vs. Class:
Commonality
Interfaces and classes are both types
– For example:
// Recommended practice
PersonInterface pi = new Person();
Interface and Class can both define methods
Interface vs. Class:
DifferencesThe methods of an Interface are all abstract methods
You cannot create an instance from an interface
– For example:
PersonInterface pi = new PersonInterface();
//ERROR!
An interface can only be implemented by classes or
extended by other interfaces
Defining Interface
Defining Interface
To define an interface, we write:
public interface [InterfaceName] {
//some methods without the body
}
Example
public interface Relation {
public boolean isGreater( Object a, Object b);
public boolean isLess( Object a, Object b);
public boolean isEqual( Object a, Object b);
}
Implementing
Interface
Implementing Interface
public class Line implements Relation {
private double x1;
private double x2;
private double y1;
private double y2;
public Line(double x1, double x2, double y1, double y2){
this.x1 = x1;
this.x2 = x2;
this.y1 = y1;
this.y2 = y2;
} // More code follows
Implementing Interface
public double getLength(){
double length = Math.sqrt((x2-x1)*(x2-x1) +
(y2-y1)* (y2-y1));
return length;
}
public boolean isGreater( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen > bLen);}
Implementing Interface
public boolean isLess( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen < bLen);
}
public boolean isEqual( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen == bLen);
}}
Implementing Interface
Line.java:4: Line is not abstract and does not
override abstract method
isGreater(java.lang.Object,java.lang.Object) in
Relation
public class Line implements Relation
^
1 error
Implementing
Multiple
Interfaces
Relationship of an Interface to
a Class
A sub class can only extend one super class, but it can
implement multiple Interfaces
All abstract methods of all interfaces have to be
implemented by the sub class
Example
A sub class extends one super class but multiple
Interfaces:
public class ComputerScienceStudent
extends Student
implements PersonInterface,
AnotherInterface,
Thirdinterface{
// All abstract methods of all interfaces
// need to be implemented.}
Inheritance
Among Interfaces
Inheritance Among Interfaces
Interfaces can have inheritance relationship among
themselves
public interface PersonInterface {
void doSomething();
}
public interface StudentInterface extends
PersonInterface {
void doExtraSomething();
}
Rewriting Interfaces
Problem
Consider an interface that you have developed called DoIt:
public interface DoIt {
void doSomething(int i, double x);
int doSomethingElse(String s);
}
Problem…
Suppose that, at a later time, you want to add a third
method to DoIt, so that the interface now becomes:
public interface DoIt {
void doSomething(int i, double x);
int doSomethingElse(String s);
boolean didItWork(int i, double x, String s);
}
8/16/13
Solution of Rewriting an
Existing Interface
For example, you could create a DoItPlus interface that
extends DoIt:
public interface DoItPlus extends DoIt {
boolean didItWork(int i, double x, String
s);
}
Thank You…!

More Related Content

PDF
javainterface
PDF
Java OOP Programming language (Part 6) - Abstract Class & Interface
PDF
Generics
PPTX
Lecture 18
PDF
8 abstract classes and interfaces
PPT
Abstract class
PPTX
Java interfaces
PPTX
C++ Object Oriented Programming
javainterface
Java OOP Programming language (Part 6) - Abstract Class & Interface
Generics
Lecture 18
8 abstract classes and interfaces
Abstract class
Java interfaces
C++ Object Oriented Programming

What's hot (20)

PPT
Interface in java By Dheeraj Kumar Singh
PPTX
Oops in vb
PPTX
Inheritance, friend function, virtual function, polymorphism
PPTX
PPTX
Variables in python
PPTX
Friend function & friend class
PPT
PPT
Chapter 9 Interface
PPTX
Interface in java
PPT
Java Programming - Abstract Class and Interface
PPTX
Object Oriented Programming Concepts
PPTX
Friend Function
PPTX
Interface in java ,multiple inheritance in java, interface implementation
PPT
Java interfaces & abstract classes
PPTX
Interfaces in java
PPTX
Java interfaces
PPTX
OOP - Polymorphism
PPT
Programming In C++
PPTX
PPT
Java interfaces
Interface in java By Dheeraj Kumar Singh
Oops in vb
Inheritance, friend function, virtual function, polymorphism
Variables in python
Friend function & friend class
Chapter 9 Interface
Interface in java
Java Programming - Abstract Class and Interface
Object Oriented Programming Concepts
Friend Function
Interface in java ,multiple inheritance in java, interface implementation
Java interfaces & abstract classes
Interfaces in java
Java interfaces
OOP - Polymorphism
Programming In C++
Java interfaces
Ad

Similar to Interfaces (20)

PPT
Java interface
PDF
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
PDF
Lecture 5 interface.pdf
PPT
Interfaces.ppt
PPT
Interfaces .ppt
PPTX
Interfaces in java
PPTX
java_unitffjfjfjjrdteszserfdffvjyurt_6.pptx
PDF
Interface
PDF
‏‏‏‏‏‏oop lecture 6_١٢٥٩٤٧taiz univercity.pdf
PPTX
Interface
PPT
Interfaces
PPT
Interfaces
PPTX
Abstract class and interface
PDF
Session 6_Java Interfaces_Details_Programs.pdf
PPT
Session 6_Interfaces in va examples .ppt
PPS
Dacj 2-1 a
PPTX
Javainterface
PDF
Basic_Java_10.pdf
PDF
14 interface
PPTX
Java interface
Java interface
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
Lecture 5 interface.pdf
Interfaces.ppt
Interfaces .ppt
Interfaces in java
java_unitffjfjfjjrdteszserfdffvjyurt_6.pptx
Interface
‏‏‏‏‏‏oop lecture 6_١٢٥٩٤٧taiz univercity.pdf
Interface
Interfaces
Interfaces
Abstract class and interface
Session 6_Java Interfaces_Details_Programs.pdf
Session 6_Interfaces in va examples .ppt
Dacj 2-1 a
Javainterface
Basic_Java_10.pdf
14 interface
Java interface
Ad

Recently uploaded (20)

PDF
A Day in the Life of Location Data - Turning Where into How.pdf
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
PDF
Google’s NotebookLM Unveils Video Overviews
PDF
CIFDAQ's Teaching Thursday: Moving Averages Made Simple
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
PPTX
How Much Does It Cost to Build a Train Ticket App like Trenitalia in Italy.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
CroxyProxy Instagram Access id login.pptx
PDF
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
PDF
Revolutionize Operations with Intelligent IoT Monitoring and Control
PDF
creating-agentic-ai-solutions-leveraging-aws.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
PDF
Doc9.....................................
PDF
Reimagining Insurance: Connected Data for Confident Decisions.pdf
PDF
Dell Pro 14 Plus: Be better prepared for what’s coming
PDF
Enable Enterprise-Ready Security on IBM i Systems.pdf
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
This slide provides an overview Technology
A Day in the Life of Location Data - Turning Where into How.pdf
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Google’s NotebookLM Unveils Video Overviews
CIFDAQ's Teaching Thursday: Moving Averages Made Simple
NewMind AI Monthly Chronicles - July 2025
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
How Much Does It Cost to Build a Train Ticket App like Trenitalia in Italy.pptx
Understanding_Digital_Forensics_Presentation.pptx
CroxyProxy Instagram Access id login.pptx
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
Revolutionize Operations with Intelligent IoT Monitoring and Control
creating-agentic-ai-solutions-leveraging-aws.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Doc9.....................................
Reimagining Insurance: Connected Data for Confident Decisions.pdf
Dell Pro 14 Plus: Be better prepared for what’s coming
Enable Enterprise-Ready Security on IBM i Systems.pdf
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
This slide provides an overview Technology

Interfaces

  • 1. Interfaces in JAVA By Jai Vikas Marathe
  • 2. Agenda What is Interface? Why Interface? Interface as a Type Interface vs. Class Defining an Interface Implementing an Interface Implementing multiple Interface's Inheritance among Interface's Rewriting an Interface
  • 3. What is an Interface?
  • 4. What is an Interface? It defines a standard and public way of specifying the behaviour of classes All methods of an interface are abstract methods
  • 5. Example: Interface // Note that Interface contains just set of method // signatures without any implementations. // No need to say abstract modifier for each method // since it assumed. public interface Relation { public boolean isGreater( Object a, Object b); public boolean isLess( Object a, Object b);
  • 6. Example 2: Interface public interface OperateCar { // constant declarations, if any // method signatures int turn(Direction direction, double radius, double startSpeed, double endSpeed); int changeLanes(Direction direction, double startSpeed, double endSpeed); int signalTurn(Direction direction, boolean signalOn); int getRadarFront(double distanceToCar, double speedOfCar);
  • 8. Why do we use Interfaces? Reason #1 To reveal an object's programming interface (functionality of the object) without revealing its implementation
  • 9. Why do we use Interfaces? Reason #2 To have unrelated classes implement similar methods (behaviours) Example: Class Line and class MyInteger Interface: checkIsGreater(Object x, Object y) checkIsLess(Object x, Object y) checkIsEqual(Object x, Object y)
  • 10. Why do we use Interfaces? Reason #3 To model multiple inheritance
  • 11. Interface vs. Abstract Class All methods of an Interface are abstract methods while some methods of an Abstract class are abstract methods An interface can only define constants while abstract class can have fields Interfaces have no direct inherited relationship with any particular class, they are defined independently
  • 13. Interface as a Type When you define a new interface, you are defining a new reference type You can use interface names anywhere you can use any other type name If you define a reference variable whose type is an interface, any object you assign to it must be an instance of a class that implements the interface
  • 14. Example: Interface as a Type Let's say Person class implements PersonInterface interface You can do – Person p1 = new Person(); – PersonInterface pi1 = p1; – PersonInterface pi2 = new Person();
  • 16. Interface vs. Class: Commonality Interfaces and classes are both types – For example: // Recommended practice PersonInterface pi = new Person(); Interface and Class can both define methods
  • 17. Interface vs. Class: DifferencesThe methods of an Interface are all abstract methods You cannot create an instance from an interface – For example: PersonInterface pi = new PersonInterface(); //ERROR! An interface can only be implemented by classes or extended by other interfaces
  • 19. Defining Interface To define an interface, we write: public interface [InterfaceName] { //some methods without the body }
  • 20. Example public interface Relation { public boolean isGreater( Object a, Object b); public boolean isLess( Object a, Object b); public boolean isEqual( Object a, Object b); }
  • 22. Implementing Interface public class Line implements Relation { private double x1; private double x2; private double y1; private double y2; public Line(double x1, double x2, double y1, double y2){ this.x1 = x1; this.x2 = x2; this.y1 = y1; this.y2 = y2; } // More code follows
  • 23. Implementing Interface public double getLength(){ double length = Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)* (y2-y1)); return length; } public boolean isGreater( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen > bLen);}
  • 24. Implementing Interface public boolean isLess( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen < bLen); } public boolean isEqual( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen == bLen); }}
  • 25. Implementing Interface Line.java:4: Line is not abstract and does not override abstract method isGreater(java.lang.Object,java.lang.Object) in Relation public class Line implements Relation ^ 1 error
  • 27. Relationship of an Interface to a Class A sub class can only extend one super class, but it can implement multiple Interfaces All abstract methods of all interfaces have to be implemented by the sub class
  • 28. Example A sub class extends one super class but multiple Interfaces: public class ComputerScienceStudent extends Student implements PersonInterface, AnotherInterface, Thirdinterface{ // All abstract methods of all interfaces // need to be implemented.}
  • 30. Inheritance Among Interfaces Interfaces can have inheritance relationship among themselves public interface PersonInterface { void doSomething(); } public interface StudentInterface extends PersonInterface { void doExtraSomething(); }
  • 32. Problem Consider an interface that you have developed called DoIt: public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); }
  • 33. Problem… Suppose that, at a later time, you want to add a third method to DoIt, so that the interface now becomes: public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); boolean didItWork(int i, double x, String s); } 8/16/13
  • 34. Solution of Rewriting an Existing Interface For example, you could create a DoItPlus interface that extends DoIt: public interface DoItPlus extends DoIt { boolean didItWork(int i, double x, String s); }