Fiz diferente poremnão sei se é o jeito mais viável rs.
abstract class Funcionario {
String nome;
double salarioBase;
String cargo;
String genero;
Funcionario(this.nome, this.salarioBase, this.cargo, this.genero);
void calcularSalario(){
print("Salário base: 3000");
}
}
class Analista extends Funcionario{
Analista(String nome, genero) : super(nome, 3000, 'Analista', genero);
@override
void calcularSalario(){
salarioBase = salarioBase + (salarioBase * 1.2);
print('Salário d$genero $cargo $nome: R\$ $salarioBase');
}
}
class Gerente extends Funcionario{
Gerente(String nome, genero) : super(nome, 3000, 'Gerente', genero);
@override
void calcularSalario(){
salarioBase = salarioBase + (salarioBase * 1.5);
print('Salário d$genero $cargo $nome: R\$ $salarioBase');
}
}
class Diretor extends Funcionario{
Diretor(String nome, genero) : super(nome, 3000, 'Diretor', genero);
@override
void calcularSalario(){
salarioBase = salarioBase + (salarioBase * 2.0);
print('Salário d$genero $cargo $nome: R\$ $salarioBase');
}
}
void main(){
Analista analista = Analista('João', 'o');
Gerente gerente = Gerente('Isadora', 'a');
Diretor diretor = Diretor('Fernão', 'o');
analista.calcularSalario();
gerente.calcularSalario();
diretor.calcularSalario();
}