Интерфейс
Коротко: Контракт, определяющий, КАКИЕ методы должен предлагать класс, не предписывая, КАК эти методы реализованы внутри.
Подробнее: Класс, «реализующий» интерфейс, обязуется заполнить все определённые в нём методы собственным кодом. В отличие от наследования, класс обычно может реализовывать несколько интерфейсов одновременно, но наследоваться лишь от одного суперкласса — интерфейсы поэтому гибкий способ.
Подробности
interface Movable {
void move();См. также: абстракция, полиморфизм, наследование