dexa eu tentar resolver usando a sobreposição dos métodos primeiro…tipo, como eu faço pra saber o custo de todos os funcionarios de uma determinada classe? Eu tenho na classe principal(onde está o metodo main) meus 10 objetos do tipo Funcionario…a única forma que pensei de fazer é passar pra um método que faça o calculo geral a quantidade de funcionarios daquela classe, será que é isso que o exercício pede?
Lavieri
gRoOve:
Não entendi...pq vc cria esse método?
public Funcionario() {
}
isto não é um método, é um Construtor, por padrão o Java implicitamente já escreve esse construtor, que libera o new Funcionario(), porem caso vc crie outro construtor como new Funcionario(String nome, int id), vc precisa definir o primeiro para que se possa usar o construtor vazio...
gRoOve:
dexa eu tentar resolver usando a sobreposição dos métodos primeiro...tipo, como eu faço pra saber o custo de todos os funcionarios de uma determinada classe? Eu tenho na classe principal(onde está o metodo main) meus 10 objetos do tipo Funcionario...a única forma que pensei de fazer é passar pra um método que faça o calculo geral a quantidade de funcionarios daquela classe, será que é isso que o exercício pede?
na verdade é algo assim
publicclassFuncionario{privatedoublerendaBasica=1000;// no exercicio é dito, que a renda é de 1000 para todos publicdoublegetRendaTotal(){returngetRendaBasica()*getTaxa();}publicdoublegetRendaBasica(){returnrendaBasica;}publicdoublegetRendaTotal(){returngetRandaBasica();}}publicFuncionarioBasicoextendsFuncionario{publicdoublegetRendaTotal(){returnsuper.getRendaTotal()*1.1//matematicamente 1.1 = 110% .... o acrescimo é de 10% }}
a cada classe... vc invoca a rendaTotal da classe anterior, e multiplica por 1 + taxa
gRoOve
o que esse super faz exatamente? Cara não consegui entender o que vc fez nesse último code, tem dois métodos com o mesmo nome…eu já isso, chama-se sobrecarga né? Mas ai não ta mudando nada, são exatamente iguais…
Lavieri
sim é sobrecarga sim, não não faz a mesma coisa não…
super é uma referencia a classe superior na linha da herança… ou seja, em FuncionarioBasico, quando falo de super.algumaCoisa() eu estou querendo falar da classe Funcionario, falando que estou referenciando a classe que eu extendi…
public FuncionarioBasico extends Funcionario{
public double getRendaTotal() {
return super.getRendaTotal() * 1.1; //matematicamente 1.1 = 110% .... o acrescimo é de 10%
}
}
esse trecho quer dizer que para FuncionarioBasico a renda total será a renda total de Funcionario multiplicada por 1.1, ou seja, salario 10% maior que o de funcionario…
return super.getRendaTotal() * 1.1
gRoOve
No caso do método:
getRendaTotal
Como o compilador vai saber qual return usar? Pelas expressões no return? Tentei fazer assim aqui e o eclipse ta apontando erro dizendo que tem um método duplicado…
gRoOve
Estou tentando dar continuidade neste exercício porém parei no item 7. Tipo, consegui criar o método que calcula os gastos totais da empresa, não estou conseguindo fazer o que separa por nível de escolaridade "/