Interfaces

  • An interface can only contain abstract methods and static final data.
  • Best used for "has a" relationships, as opposed to classes (inheritance), which are best used for "is a" relationships.
  • Interface methods are abstract by default (unimplemented).
  • Interface data is static and final by default.
  • If an interface is public, it must be in it's own .java file.

Implementing

class SubClass extends SuperClass implements Interface1, Interface2 {
...
}

Extending

interface SubInterface extends SuperInterface {
...
}