Sobrescrever um metodo sem usar metodos acessores

2 respostas Resolvido
programaçãojava
rebeca1

Olá, eu tenho um exercicício onde preciso criar uma classe “Programador” que herde uma classe “Pessoa”, adicionar um atributo “linguagem”, iniciar ele em um construtor e sobrescrever o método “showInfo()” adicionado um atributo que só existe na classe programador. Eu não consigo modificar a classe Pessoa para adicionar métodos get e não consigo compilar o código porque os atributos nome e idade são privados, como eu resolvo isso?

class Pessoa {

private String nome;

private int idade;
public Pessoa(String nome, int idade) {
    this.nome = nome;
    this.idade = idade;
}

public void showInfo() {
    System.out.println(nome);
    System.out.println(idade);
}

}

class Programador extends Pessoa {

private String linguagem;

public Programador(String nome, int idade, String linguagem){
    super(nome, idade);
    this.linguagem = linguagem;
}

@Override
public void showInfo(){
    System.out.println(nome);
    System.out.println(idade);
    System.out.println(linguagem);
    
}

}

2 Respostas

K
Solucao aceita

Do mesmo jeito que você chamou a classe base (também chamada de super-classe) no construtor, chame ela no showInfo() para usar a implementação herdada para mostrar nome e idade.

https://docs.oracle.com/javase/tutorial/java/IandI/super.html

rebeca1

nossa muito obrigada, eu não fazia nem ideia de como pesquisar isso.

Criado 5 de janeiro de 2020
Ultima resposta 6 de jan. de 2020
Respostas 2
Participantes 2