Я играл с Scala некоторое время, и я знаю, что черты могут действовать как эквивалент Scala обоих интерфейсов и абстрактных классов. Как точно черты, скомпилированные в байт-код Java?
Я нашел несколько коротких объяснений, в которых сформулированные черты компилируются точно так же, как Java-интерфейсы, когда это возможно, и в противном случае взаимодействует с дополнительным классом. Тем не менее я до сих пор не понимаю, как Scala достигает линеаризации класса, недоступной в Java.
Есть ли хороший источник, объясняющий, как черты компилируются в байт-код Java?