Как уже определено, вы можете расширить один класс и реализовать несколько интерфейсов. А в Java 8+ эти интерфейсы могут иметь реализации по умолчанию.
Но, чтобы добавить к этому, вы также можете иметь различные реализации SPORTER, например. Вы можете использовать реализацию SporterAlpha с помощью композиции.
class Foo extends Car implements Sporter {
private SporterAlpha sporterAlpha;
public int sporterMethodA(int arg1) { return sporterAlpha.sporterMethodA(arg1); }
}
Повторите при необходимости, чтобы выставить все необходимые методы SporterAlpha.
Таким образом, вы можете:
- Наследовать не более чем из одного суперкласса
- Реализуйте столько интерфейсов, сколько необходимо
- Используйте реализации по умолчанию на ваших интерфейсах с Java 8 +
- Используйте соответствующую композицию