public abstract class Conta {
protected double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total = 0;
//CODIGO OMITIDO
Eu não entendi bem porque não poderia usar private no salario, visto que é um atributo perigoso para as contas filhas, pois no estado de protected consigo alterar facilmente nas outras classes filhas. Por exemplo, se eu crio um objeto Funcionario numa classe de testes, consigo setar qualquer salario que eu quiser e o código compila normalmente.
public class TesteFuncionario {
public static void main(String[] args) {
Funcionario nico = new Designer();
nico.setCpf("888.888.888-98");
nico.setNome("Nico Steppat");
nico.setSalario(2552.97);
nico.salario = 3000000;
Como eu resolvo esse problema? Pois se eu colocar private os métodos de bonificação da classe de um funcionário comum param de compilar.
public class Designer extends Funcionario {
public double getBonificacao() {
return super.salario = salario + 200;
}
}