Metodos

Boa noite estou com uma duvida como faço para receber um dados de uma classe dentro de um metodo.
Olha so tenho uma classe imprimi dentro dessa classe tenho um metodo imprimipessoa, esse metodo imprimipessoa tem que receber dados de duas outras classes (filhas da classe Imprimi) PFisica e PJuridica.

Quem você instanciou para acessar o método imprimipessoa() ?

Quando você faz o seguinte:

PFisica p = new PFisica(); p.imprimipessoa();

Você só consegue enviar os dados da classe filha PFisica para a classe pai, usando no construtor o super. Mesmo que o método imprimipessoa() não esteja na filha ele será acessado porque a pai o contém, mas o método da classe pai não pode acessar os dados na classe filha, para isto:

Na filha você deve reescrevê-lo, a melhor maneira para isto é usando o poliformismo.
Na pai declare o método imprimipessoa com modificador protected e na filha reescreva o método passando os dados para a o método da classe pai, mais ou menos assim:

[code]// na pai
class Imprimi{
// o protected impede que o método seja acessado sem ser pela classe filha.
protected imprimipessoa(String dado1, String dado2, …){
// código do método
}
}

// na filha
class PFisica extends Imprimi{
imprimipessoa(){
// chama e passa os dados para o método da classe pai.
super.imprimipessoa(String dado1, String dado2, …);
}
}[/code]

Tem também como usar a classe pai como tipo de objeto,
é bom colocar Imprimi como abstract para funcionar legal:

Imprimi p = new PFisica();

Mas você terá que passar os dados da classe filha para a pai no construtor dela OU setar as variáveis da classe pai.

Dica: Tente usar o padrão e primeira letra maiuscula para separar as palavras, por exemplo imprimipessoa fica imprimiPessoa, é melhor de visualizar.

Veja se isso ajudou!

Até mais…

Blz wID valeu pela dica

Bom de um ponto de vista de OO fica muito estranho uma Pessoa Estender Imprimi(alias o nome da classe Impressora ficaria melhor n ? )
uma pessoa nao e uma impressora, e no seu codigo ela é, passaria em um teste instanceof.

mas como essa não foi sua dúvida derrepente e um exercicio e precisa ser feito do jeito que voce falou mesmo, foi so uma dica…