[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
[quote=ebortolatto]Bom dia!
Sobreescreva o método toString() na classe Proprietário:
public String toString() {
return nome;
}
Acho que isso resolve [/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.
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”