The code likes below:
abstract class BB {
BB() {
print('BB Constructor');
init();
}
init() {
print('BB init');
}
}
mixin GB on BB {
@override
init() {
super.init();
print('GB init');
}
}
mixin PB on BB {
@override
init() {
super.init();
print('PB init');
}
}
class WFB extends BB with GB,PB {}
It will print:
BB Constructor
BB init
GB init
PB init
I know the PB's init method will cover GB's init method. So why it invokes GB's init method.