Ao contrário do que está sendo mostrado no vídeo, no meu código não aparenta ter nenhuma diferença entre usar protected ou private, o getBonificacao() do Gerente não apresenta erro em qualquer uma das duas formas... Gostaria de saber se estou fazendo algo errado. A única disparidade entre o que estou fazendo e o que o professor fez que eu consigo dizer só de olhar é que eu estou usando o IntelliJ e eu fiz um construtor pra passar o salário em vez de usar um set.
Main.java
import Funcionarios.*;
public class Main{
public static void main(String[] args) {
Gerente g = new Gerente(5000);
Funcionario f = new Funcionario(5000);
System.out.println(f.getBonificacao() + "|" + g.getBonificacao());
}
}
--
Funcionario.java
package Funcionarios;
public class Funcionario {
private String nome;
private String cpf;
protected double salario;
private String senha;
public Funcionario(double salario){
this.salario = salario;
}
public String getNome() {
return this.nome;
}
public String getCpf() {
return this.cpf;
}
public double getSalario() {
return this.salario;
}
public double getBonificacao(){
return this.getSalario() * 0.1;
}
}
--
Gerente.java
package Funcionarios;
import java.util.Objects;
public class Gerente extends Funcionario {
private String senha;
public Gerente(double salario) {
super(salario);
}
public boolean autentica(String senha){
return Objects.equals(this.senha, senha);
}
public double getBonificacao(){
return this.salario;
}
}