Jean Carlo,

O problema não é bem de herança, mas sim por que o qualificador de endereço
é private. Basicamente há dois modos para resolver isso:

1) Vc. pode mudar endereco para public e então o codigo:
 cliente.endereco.setRua("Nome da Rua");
passaria a funcionar.

2) Ou, mantenha o atributo como private e implemente um metodo getEndereco()
na classe tpessoa, que retorne o atributo endereco:

public tendereco getEndereco() {
    return endereco;
}

Altere o codigo para cliente.getEndereco().setRua("Nome da Rua");

Como isto funciona?
Bem o Java não irá criar um novo objeto endereco no retorno de
getEndereco(), mas vai passar uma referencia para esse objeto. Desse modo o
setRua() a seguir irá "setar" o atributo rua dentro do objeto endereco que
está em cliente.


Roberto Tatemoto



>
> PessoALL,
>
> Tenho uma classe tcliente que herda de tpessoa. A Tpessoa tem um atributo
> endereco do tipo tendereco. Como faco para setar os valores do endereço
???
>
> Tipo assim:
>
> Criei um objeto do tipo tcliente
>
> Tcliente cliente=new tcliente();
>
> Eu quero setar o nome e a rua do cliente.
>
> O nome eu seto assim:
>
> Cliente.setNome("Anderson");
>
> Mas como eu seto a rua ? Tentei
>
> Cliente.endereco.setRua("Rua x"); e também
>
> Cliente.setRua("Rua x");
>
> E deu errado. Como eu faço ?
>
> Minha classe pessoa está assim:
>
> public class tpessoa
>  {
>    private String nome;
>    private tendereco endereco;
>
>    public tpessoa()
>    {nome="";
>     endereco=new tendereco();
>    }
>
>
>
>
> []'s
> Jean Carlo-BH




------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a