Problemas com o contrutor

[code]public class Proprietario extends Pessoa{

protected String cpf;

public Proprietario(){}

public Proprietario(String nome, String cpf) {
    super.nome=nome;
    this.cpf = cpf;
}

public String getCpf() {
return cpf;
}

public void setCpf(String cpf) {
    this.cpf = cpf;
}

}[/code]


public class Main {
    public static void main(String[] args) {
        Proprietario prop = new Proprietario();
        System.out.println("Proprietário.........: "+ new Proprietario("Aldo","080-723-469-48"));
   }
}

Qual o problema disso o nome nao aparece na minha main, ele aparece algo como Proprietário…: Proprietario@b8f82d

Bom dia!
Sobreescreva o método toString() na classe Proprietário:

public String toString() { return nome; }

Acho que isso resolve :slight_smile:

[quote=ebortolatto]Bom dia!
Sobreescreva o método toString() na classe Proprietário:

public String toString() { return nome; }

Acho que isso resolve :slight_smile: [/quote]

O método System.out.println invoca o método toString de que a sua classe herdou de Object (toda classe extends Object).
Quando vc manda imprimir um objeto Propietário ele chama o método toString e imprime alguma coisa identificando o Objeto e não os atributos do objeto.
O ideal mesmo é sobrescrever o método toString em sua classe. :smiley:

Só uma dica. Ao invés de fazer isso:

public Proprietario(String nome, String cpf) { super.nome=nome; this.cpf = cpf; }

Faça uma chamada ao construtor de Pessoa:

public Proprietario(String nome, String cpf) { super(nome); this.cpf = cpf; }

Ou ao método:

public Proprietario(String nome, String cpf) { setNome(nome); this.cpf = cpf; }

Fica mais “elegante” :wink: