Title here
Summary here
Interfaces are named collections of method signatures.
import java.lang.Math;
// Here's a basic interface for geometric shapes.
interface Geometry {
double area();
double perim();
}
// For our example we'll implement this interface on
// Rectangle and Circle classes.
class Rectangle implements Geometry {
double width, height;
Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
// To implement an interface in Java, we need to
// implement all the methods in the interface.
@Override
public double area() {
return width * height;
}
@Override
public double perim() {
return 2 * width + 2 * height;
}
@Override
public String toString() {
return "{" + width + " " + height + "}";
}
}
class Circle implements Geometry {
double radius;
Circle(double radius) {
this.radius = radius;
}
// The implementation for Circle.
@Override
public double area() {
return Math.PI * radius * radius;
}
@Override
public double perim() {
return 2 * Math.PI * radius;
}
@Override
public String toString() {
return "{" + radius + "}";
}
}
public class Interfaces {
// If a variable has an interface type, then we can call
// methods that are in the named interface. Here's a
// generic measure method taking advantage of this
// to work on any Geometry.
public static void measure(Geometry g) {
System.out.println(g);
System.out.println(g.area());
System.out.println(g.perim());
}
public static void main(String[] args) {
Rectangle r = new Rectangle(3, 4);
Circle c = new Circle(5);
// The Circle and Rectangle classes both
// implement the Geometry interface so we can use
// instances of these classes as arguments to measure.
measure(r);
measure(c);
}
}
To run the program, compile it and then use java
to execute:
$ javac Interfaces.java
$ java Interfaces
{3.0 4.0}
12.0
14.0
{5.0}
78.53981633974483
31.41592653589793
To learn more about Java’s interfaces, check out the official Java documentation on interfaces.