1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

herança em java

Discussão em 'Programação' iniciada por Zepiroca, 8 de Junho de 2007. (Respostas: 4; Visualizações: 1671)

  1. É o seguinte tenho uma classe jogador com o seguinte codigo

    public class Jogador {


    private String nome;
    private int pontuacao;
    private Carta []cartasMao;

    public Jogador(String nome){
    this.nome=nome;
    pontuacao = 0;
    cartasMao = new Carta
    • ;
    }

    public String getNome(){
    return nome;
    }

    public int getPontuacao(){
    return pontuacao;
    }
    public Carta[]getCartaMao(){
    return cartasMao;
    }

    E agora quero kriar uma classe banqueiro que herde os atributos da classe jogador mas n sei como herdar a pontuacao e as cartaMao

    public class Banqueiro extends Jogador{

    public Banqueiro(String nome){

    super(nome);

    mas como fazer para herdar os outros atributos
     
  2. El_UnO

    El_UnO 1st Folding then Sex

    Ao estenderes a classe estás automaticamente a dizer que um banqueiro é um jogador, logo podes invocar os métodos públicos que definiste para o jogador sobre um objecto do tipo banqueiro :P
     
  3. legerdemain

    legerdemain Power Member

    as classes derivadas (neste caso a classe Banqueiro) não têm acesso aos campos privados da classe base (neste caso Jogador) - é o caso dos atributos nome, pontuação e cartasMao

    se queres que os campos sejam acessíveis às classes derivadas, deves marcá-los como protected na classe base (Jogador)
     
  4. MadOnion

    MadOnion Folding Member

    Se na classe Mãe existirem getters que devolvam o estado dos atributos, não é necessário os atributos estarem protected.
    Já agora também é possível redefinires um metodo da classe principal, na classe que extende a principal.
    Uma ultima dica, java não suporta herança múltipla(não podes fazer multiplos extendes), para isso podes programar interfaces, se te der jeito ;)
     
  5. guilherme

    guilherme Power Member

    tal como o legerdemain disse e bem, terás de meter os atributos protected para serem publicos à classe que esta na mesma hierarquia, se bem que isso não é boa política, repara, se usas gets e sets é por alguma razão, em vez da utilização do protected deixa em private e utiliza apenas os métodos public para retorno ou modificação do atributo, assim evitas o acesso directo ao atributo :)
     

Partilhar esta Página