By making Structure an interface, we get the following benefits:

The technical term for this is polymorphism, which means that a given object can be thought of in multiple ways. In this case a mobile can be thought of as a Mobile, a Structure, or an Object, depending on the need of the programmer. When it comes to writing something like a getWeight() method, thinking of it as a Structure turns out to be really helpful.

public interface Structure {
	public double getWeight();
	public boolean isBalanced();
}