Duvida: Reescrevendo metodos

Boa tarde pessoal

eu tenho uma duvida,

alguem poderia me dar um exemplo de como se faz para reecrever um metodo abstrato ?

por exemplo, eu tenho uma classe Funcionario, que é abstrata e um método Bonificação que tambem é abstrato

Tenho as classes Gerente, diretor e Secretario que são filhas da classe Funcionario

essas classes devem reescrever o metodo abstrato chamado Bonificação

eu gostaria de saber como eu faço para reescrever esse metodos nas outras classes ?

eu tenho que utilizar a palavra chave Super ou não ?

auguem poderia me dar um exemplo ?

Obrigado

Oi wampactimus!

Muito simples, aqui vai um exemplo bem básico!

public class ClassAbstrata{ public abstract void talk(); }

Agora, uma classe filha e a implementação do método talk.

public ClasseFilha extends ClassAbstrata { public void talk() { System.out.println("Olá!"); }

Exemplo bem simples, basta aplicar a idéia de acordo com a sua necessidade.
Abraços.

valeu nel

entendi

agora me veio outra duvida:

voce escrever isso: public abstract void talk();

minha duvida é : é necessário colocar public antes de abstract ?

cara não me leva a mau, mas eu fiquei um tempinho sem programar em java e agora estou esquecendo auguns detalhes

mas valeu pela ajuda :slight_smile:

[quote=wampactimus]valeu nel

entendi

agora me veio outra duvida:

voce escrever isso: public abstract void talk();

minha duvida é : é necessário colocar public antes de abstract ?

cara não me leva a mau, mas eu fiquei um tempinho sem programar em java e agora estou esquecendo auguns detalhes

mas valeu pela ajuda :)[/quote]
Não! Você pode colocar private ou protected.

Então, não, ele não aceita algo como private de modificador de acesso, já que uma classe filha é obrigado a implementa-lo e um método private somente é visto pela própria classe.

Se declarar sem o public, podes optar por default ou protect.
Só fique atento as particularidades de default e protect, basicamente, um é exlusivamente para classes do mesmo pacote e outro para classes filhas.

Abraços.

[quote=x@ndy][quote=wampactimus]valeu nel

entendi

agora me veio outra duvida:

voce escrever isso: public abstract void talk();

minha duvida é : é necessário colocar public antes de abstract ?

cara não me leva a mau, mas eu fiquei um tempinho sem programar em java e agora estou esquecendo auguns detalhes

mas valeu pela ajuda :)[/quote]
Não! Você pode colocar private ou protected.[/quote]

Negativo! Não se pode adicionar o modificador private a um método abstrato.
Como as classes que devem implementar esse método vão poder enxerga-lo? :slight_smile:

Abraços.

[quote=nel]Então, não, ele não aceita algo como private de modificador de acesso, já que uma classe filha é obrigado a implementa-lo e um método private somente é visto pela própria classe.

Se declarar sem o public, podes optar por default ou protect.
Só fique atento as particularidades de default e protect, basicamente, um é exlusivamente para classes do mesmo pacote e outro para classes filhas.

Abraços.[/quote]
Está correto, na pressa realmente eu me passei.

[quote=x@ndy][quote=wampactimus]valeu nel

entendi

agora me veio outra duvida:

voce escrever isso: public abstract void talk();

minha duvida é : é necessário colocar public antes de abstract ?

cara não me leva a mau, mas eu fiquei um tempinho sem programar em java e agora estou esquecendo auguns detalhes

mas valeu pela ajuda :)[/quote]
Não! Você pode colocar private ou protected.[/quote]

private para métodos abstract ??? em que situação você usa isso (se é que dá)… A idéia do abstract não é para ser extendido ???

Calma, se verificar logo acima ele se retrata.
Já postei algumas coisas na pressa também e acabei por errar.

Mas ai é a parte boa do GUJ, alguém sempre nos corrige.
Abraços! :thumbup:

Edit: só para dizer algo, a idéia de uma classe abstrata não diz respeito somente a ser extendida. Podes criar uma classe abstrata e não ter absolutamente nenhum método abstrato nela ok? :slight_smile: