Что бы вы ни mixin
перегрузили все, что уже есть ...
В этом примере во время компиляции B.test()
перегружает унаследованный A.test()
метод
Но затем во время выполнения, A.test()
добавляется через mixin
, который перезагружает ранее перегруженный метод
Если бы это было не так, вы бы не смогли изменить существующие характеристики класса, используя mixins
то есть (это глупый пример, но я верю, что он понял мою точку зрения):
class AddNotMinus {
static def minus( int a, int b ) {
a + b
}
}
Integer.mixin AddNotMinus
println 10 - 10
печатает 20