Defining an interface is written in some detail here (Sun Tutorial): http://java.sun.com/docs/books/tutorial/java/interpack/createinterface.html
This is another example. It is comprised of these files:
| Rational Interface |
| public interface Rational { boolean equals (Rational r); int numerator (); int denominator (); void setnumer (int n); void setdenom (int n); double decimal (); } |
| FractRational | DecRational |
| public class FractRational implements
Rational { private int n = 1; private int d = 1; public FractRational () { } public FractRational (int nu, int de) public FractRational (double de) public boolean
equals (Rational r) public int numerator
() public int denominator
() public void
setnumer (int n) public void
setdenom (int n) public double decimal () |
public class DecRational implements
Rational { private double dec = 0.1; public DecRational () { } public DecRational (int nu, int de) public DecRational (double de) public boolean
equals (Rational r) public int numerator
() int n = (int)
(dec * 100); public int denominator
() public void
setnumer (int n) public void
setdenom (int n) public double decimal () |
public class RunRational
{
public static void main (String args [])
{
//Create a FractRational
FractRational half = new FractRational (1, 2);
FractRational quarter = new FractRational (0.25);
System.out.println (half.decimal ());
System.out.println (quarter.decimal ());
//Create a DecRational
DecRational alsoHalf = new DecRational(0.5);
System.out.println(alsoHalf.numerator());
System.out.println(alsoHalf.denominator());
//We can test if a DecRational and FractRational are equal
// because both are implementing the Rational interface
System.out.println(half.equals(alsoHalf));
}
}