Yes. By using an interface, a constant can be used by several classes. This helps keep the classes consistent.
Here is a tiny program that tests the classes.
If you want to run the program, copy and paste all the classes and
the interface to a file called Store.java.
public class Store
{
public static void main ( String[] args )
{
Goods gd = new Goods( "bubble bath", 1.40 );
Food fd = new Food ( "ox tails", 4.45, 1500 );
Book bk = new Book ( "Emma", 24.95, "Austin" );
Toy ty = new Toy ( "Legos", 54.45, 8 );
gd.display();
fd.display();
ty.display();
System.out.println("Tax is: " + ty.calculateTax() + "\n" );
bk.display();
System.out.println("Tax is: " + bk.calculateTax() + "\n" );
}
}
The calculateTax() method is only used with objects whose
class implements the interface
Here is a picture that shows the classes and their objects:
In the picture, clouds represent classes. Arrows with pointed head connect child classes to parent classes. The dotted rectangle represents the interface; a dotted arrow shows which classes implement it. Rectangles represent objects. Arrows with square head connect an object to its class.