Classe Abstrata

Oi, Pessoal! Tudo bem?

Estou estudando java e pintou um duvida.

Porque eu não posso chamar um método abstrata dentro de uma classe abstrata?

package modulo9;

abstract class Funcionario {


	protected String nome;
	protected String cpf;
	protected double salario;
	
	
	
	public double getBonificacao (){
		return this.salario * 1.2;
	this.getBonificoacao(valor);
	}
	
	abstract void  getBonificoacao (double valor) ;
	
	
	
}

Por não faz sentido!

lembre-se que em algum momento um outra classe irá estender sua classe abstrata e irá herdar os membros da classe abstrata, pense nisso.

att.

Ué, quem disse que não?
Você pode sim, chamar um método abstrato de dentro de uma classe abstrata.

O seu problema aí é que você está tentando chamar o método depois do return. Como o código nunca será alcançado, o Java reclama.

TatianeRochaa, como ja foi dito, vc pode sim chamar um método abstrado em uma classe abstrata, mas agora tira uma dúvida minha, qual a sua intenção nisso ai?

[quote=gpzim98]TatianeRochaa, como ja foi dito, vc pode sim chamar um método abstrado em uma classe abstrata, mas agora tira uma dúvida minha, qual a sua intenção nisso ai?

[/quote]

É porque estou estudando e surgiu uma dúvida sobre esse assunto.

E realmennte seguindo a orientação de vocês funciona conforme o código abaixo, eu entendi o que acontece ao executar ele vai chamar a classe que implementou o método abstrato.

Obrigada…

package teste;

public abstract class Gesulino {

	public String sexo() {

		return "Masculino";
	}
	
	abstract String faculdade();
	
	
	public String corOlhos() {
		
		
		this.faculdade();
		
		
		
		
		return "Castanho";
	}
	
	
	
}

Exatamente,
boa sorte ai nos seus estudos

TatianeRochaa, já que está estudando, só quero comentar algumas coisas, caso já saiba disso, peço desculpas:

1 - Uma classe abstrata pode não ter métodos abstratos, mas um método abstrato deve ser sempre de uma classe abstrata

2 - A grande diferença de um método abstrato para outro que não seja, é que a classe filha se torna obrigada a implementar o método abstrato, igual seria se você mandasse uma classe implementar uma interface

3 - Você tem dois métodos que são públicos, porém, só há uma forma de você executar o acesso a eles, por herança. Como sua classe é abstrata, não é possível criar uma instância da mesma. Caso quisesse alterar isso, teria de colocar o modificador de acesso static nos respectivos métodos.

Creio que seja isso.
Abraços.