Duvida Sobre Construtores

3 respostas
manfred2k3

Boa Tarde

Estou estudando java e nao entendi sobre construtores que herdam de outras classes.

Exemplo: ( Nao esta o Codigo por completo)

public class Pessoa {

private String nome;
private String endereco;

public Pessoa(String nome,String endereco){    TENHO DUVIDA EM RELACAO A ESTE CONSTRUTOR
	this.setNome(nome);                        E PARA QUE EXISTE...
	this.setEndereco(endereco);
		}

public class PessoaFisica extends Pessoa{

private String cpf;
private String estadoCivil;

public PessoaFisica(String nome,String endereco,String cpf){
	 super(nome,endereco);
     this.setCPF(cpf);
}

Muito Obrigado
Manfred

3 Respostas

francislon

Construtores servem para inicializar os dados de sua classe quando esta for instanciada.

Por exemplo, no codigo que vc apresentou. Suponha que vc tem a classe main com o seguinte codigo:

//...
PessoaFisica alguem = new PessoaFisica("Joao", "Nº 11452 - Ilhéus - BA", "[telefone removido]");
//...

Quando vc passa aquelas strings como parametro, vc está inicializando as variaveis da classe com os valores que está passando como parametro. Como sua classe herda da classe Pessoa, sua classe PessoaFisica já tem os atributos nome e endereco que é da classe Pessoa.
Logo quando vc cria uma instancia da classe PessoaFisica, vc está implicitamente chamando o construtor da classe Pessoa quando vc está usando o super:

super(nome,endereco); // Aki vc está chamando o construtor da classe pai que recebe dois argumentos String

Era essa a sua duvida? Se não, especifique melhor sua duvida.
Abraço.

Claudio_Nazzari

O Construtor da primeira classe Pessoa obriga que, quando voce instancia a classe Pessoa, voce precisa informar um nome e um endereco. Quando voce nao informa nenhum construtor para uma classe, ele vem como defaut o construtor em branco(sem nenhum paramentro), Caso contrario, se voce inserir um outro contrutor qualquer, o construtor em branco deixa de existir.

public PessoaFisica(String nome,String endereco,String cpf){ 
    super(nome,endereco); 
    this.setCPF(cpf); 
}

Na PessoaFisica, percebe-se que, no construtor da classe, ele executa o construtor da classe pai usando o super(nome,endereco);

LPJava

manfred2k3:
Boa Tarde

Estou estudando java e nao entendi sobre construtores que herdam de outras classes.

Exemplo: ( Nao esta o Codigo por completo)

public class Pessoa {

private String nome;
private String endereco;

public Pessoa(String nome,String endereco){    TENHO DUVIDA EM RELACAO A ESTE CONSTRUTOR
	this.setNome(nome);                        E PARA QUE EXISTE...
	this.setEndereco(endereco);
		}

public class PessoaFisica extends Pessoa{

private String cpf;
private String estadoCivil;

public PessoaFisica(String nome,String endereco,String cpf){
	 super(nome,endereco);
     this.setCPF(cpf);
}

Muito Obrigado
Manfred

http://www.guj.com.br/posts/list/50115.java

Criado 16 de outubro de 2007
Ultima resposta 16 de out. de 2007
Respostas 3
Participantes 4