Я только что начал изучать Scala, и я теперь задаюсь вопросом, как я мог реализовать два различных интерфейса Java с неким классом Scala? Скажем, мне записали следующие интерфейсы в Java
public interface EventRecorder {
public void abstract record(Event event);
}
public interface TransactionCapable {
public void abstract commit();
}
Но класс Scala может расширить только один класс за один раз. Как у меня может быть класс Scala, который мог выполнить оба контракта? Я должен отобразить те интерфейсы в черты?
Отметьте, мои классы Scala использовались бы от Java, поскольку я пытаюсь ввести новую функциональность, записанную в Scala в существующее JAVA-приложение. И существующая платформа ожидает, что выполняются оба интерфейсных контракта.
Второй интерфейс может быть реализован с помощью с ключевым словом
class ImplementingClass extends EventRecorder with TransactionCapable {
def record(event: Event) {}
def commit() {}
}
Далее каждый последующий интерфейс разделены ключевым словом на
.
class Clazz extends InterfaceA
with InterfaceB
with InterfaceC {
//...
}