herança em java

Zepiroca

Membro
É 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
 
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
 
É 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

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)
 
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 ;)
 
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 :)
 
Back
Topo