Eu removi o this do corpo da função e o resultado foi o mesmo. Alguém pode me esclarecer o motivo desse comportamento, e se de fato é necessário usar o this.
class CalculadoraBonificacao {
var total: Double = 0.0
private set
fun registra(funcionario: Funcionario) {
total += funcionario.bonificacao()
}
fun registra(gerente: Gerente) {
total += gerente.bonificacao()
}
fun registra(diretor: Diretor) {
total += diretor.bonificacao()
}
}