Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Explicando: tenho uma classe Cliente_PF e outra Cliente_PJ. Na classe Arquivos eu tenho o método salvarArquivo() que deverá receber um obj que seja da classe Cliente_PF ou da classe Cliente_PJ, como posso fazer para limitar que o método receba apenas um destes estes dois objetos?
Obrigado pela responsta Leonardo.
Apenas para esclarecer: eu já tenho uma superclasse Clientes, posso passá-la no parâmetro? Não precisa ser necessariamente as classes herdeiras?
Exato.
A classe Clientes trabalha (ou pode trabalhar) com várias instâncias de Pessoa.
Esse seu método vai trabalhar com Clientes e, através deles, manipular as Pessoas (no bom sentido).
Porém, Clientes não precisa ser necessáriamente uma classe (abstrata, normalmente).
Juliano amadeu você pode passar a classe Cliente como o argumento do método sim, desde que ela não seja abstrata.
Na herança uma classe filha assume o tipo do seu pai e ainda define o seu próprio tipo. Se você colocar o tipo Cliente na indução, as 3 classes poderão ser aceitas.
Juliano amadeu você pode receber a instância de um objeto do tipo Pessoa como parâmetro. Veja:
http://imageshack.us/photo/my-images/690/associao.jpg/
Você pode usar uma classe abstrata chamada Pessoa e utilizar indução de tipos na assinatura do método salvar_arquivo. Assim você não restringe qual é o tipo que esse método irá receber (desde que ele seja do tipo Pessoa).