Isso aconteceu porque a classe DiretorTI herda o método getBonificacao da classe Diretor, que por sua vez sobrescreve o método da classe Funcionario. Como a classe Diretor retorna o valor de 200, quando o método é chamado em um objeto DiretorTI, ele herda esse valor e não o valor original de 100 da classe Funcionario. Se a classe DiretorTI quiser ter um comportamento diferente, ela precisa sobrescrever o método getBonificacao.