Loading search index…
No recent searches
No results for "Query 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:
java
$ 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.