Duvida: Reescrevendo metodos

8 respostas
wampactimus

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

8 Respostas

nel

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.

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 :slight_smile:

x111

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 :)


Não! Você pode colocar private ou protected.

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.

nel

x@ndy:
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 :)


Não! Você pode colocar private ou protected.

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.

x111

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.


Está correto, na pressa realmente eu me passei.

adriano_si

x@ndy:
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 :)


Não! Você pode colocar private ou protected.

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 ???

nel

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:

Criado 15 de março de 2011
Ultima resposta 15 de mar. de 2011
Respostas 8
Participantes 4