Tinham alguns problemas no seu código, o compilador deu erro na linha 29 porque você não tinha fechado o método anterior (autentica), então ele pensou que vc ainda estava descrevendo o método. Outra coisa é que não existia o método setSalario na classe Funcionario. Outra coisa ainda é que o método getBonificacao está descrito na classe Funcionario e não na classe Extends, o que faria as linhas 47 e 55 falharem na compilação.
Segue seu código corrigido.
Flw,
Renan
class Funcionario {
protected String nome;
protected String cpf;
protected double salario;
double getBonificacao() {
return this.salario * 0.10;
}
public void setSalario(double salario){
this.salario = salario;
}
}
class Gerente extends Funcionario {
int senha;
public boolean autentica(int senha){
if (this.senha == senha){
System.out.println("Acesso Permitido");
return true;
}else{
System.out.println("Acesso Negado");
return false;
}
}
double getBonificacao() {
return this.salario * 0.15;
}
}
class Extends {
public static void main(String[] args) {
Funcionario a = new Funcionario();
a.nome = "Antonio";
a.cpf = "9999999999";
a.setSalario(4700);
a.getBonificacao();
Gerente b = new Gerente();
b.nome = "Kleber";
b.cpf = "88211241981";
b.salario = 8300;
a.getBonificacao();
System.out.println(b.salario);
}
}
1 - Não existe o método setSalario(Double salario);
2 - O método main deve estar contido na classe cujo nome do arquivo .class represente-a (no caso na classe funcionário)
3 - Vc colocou o método getSalario do Gerente depois do método autentica, sendo que autentica retorna true ou false e finaliza o processamento da classe por isso não chegava ao getSalario();
Segue código corrigido tb…
class Funcionario {
protected String nome;
protected String cpf;
protected double salario;
double getBonificacao() {
return this.salario * 0.10;
}
//ficou meio estranho aqui...mas seria o certo
public static void main(String []args){
Funcionario a = new Funcionario();
a.nome = "Antonio";
a.cpf = "9999999999";
a.salario = 4700;
a.getBonificacao();
Gerente b = new Gerente();
b.nome = "Kleber";
b.cpf = "88211241981";
b.salario = 8300;
b.getBonificacao();
System.out.println(b.salario);
}
}
class Gerente extends Funcionario {
int senha;
double getBonificacao() {
return this.salario * 0.15;
}
public boolean autentica(int senha) {
if (this.senha == senha) {
System.out.println("Acesso Permitido");
return true;
} else {
System.out.println("Acesso Negado");
return false;
}
}
}
class Contratacao{
public static void main(String []args){
//Aqui a JVM não acha o método main (eu acho q não...)
}
}