Construtores

6 respostas
anderson.bonavides
class Person{
	String name = "No name";
	public Person(String nm){
		name = nm;
	}
}

public class Employee extends Person{
	String empID ="0000";
	
	public Employee(String id){ //erro nesta linha!
		empID = id;
	}
	
}
public class EmployeeTest{
	public static void main(String[] args) {
		Employee e = new Employee("4321");
		System.out.println(e.empID);
	}
}

Galéra qual o erro? Alguêm identifica?

Grato!

6 Respostas

cv1

Faltou chamar o construtor da superclasse… como vc pode advinhar, com o super().

anderson.bonavides
cv:
Faltou chamar o construtor da superclasse... como vc pode advinhar, com o super().

É consegui encontrar esse erro infantil. Algumas modificações de diferentes maneiras podem corrigir isso.

1) adicionar super("x"); no construtor de Employee. 2) criar um construtor padrão em Person das duas formas:
public Person(){
    this("x");
}
public Person(){

}
Raff

Esse tipo de questão confunde “um pouco” mas é só prestar a atenção !

LPJava

kd o construtor da superclasse? nao tem ele na subclasse.. sempre que a superclasse ter um construtor que nao seja padrao.. vc vai ter que chamar ele na subclasse..SEMPRE. E lembrando que qdo vc nao criar o construtor temos o padrao.. entao quando envolver herança dar uma olhada sempre na parte de construtores muitas pedaginhas moram ai...

class Co1{

}

class Co2 extends Co1{
Co2(String a){
}
// aqui a subclasse implicitamente chama super() que é o construtor padrao da class pai.
~
class Co3{
Co2(int s){}
}

class Co4 extends Co3{
Co4(){
super(4);//se vc nao colocar essa linha o codigo nao compila pq vc  é obrigado a chamar os construtores da superclasse
}
}

flw! espero ter ajudado!

anderson.bonavides
LPJava:
kd o construtor da superclasse? nao tem ele na subclasse.. sempre que a superclasse ter um construtor que nao seja padrao.. vc vai ter que chamar ele na subclasse..SEMPRE. E lembrando que qdo vc nao criar o construtor temos o padrao.. entao quando envolver herança dar uma olhada sempre na parte de construtores muitas pedaginhas moram ai...
class Co1{

}

class Co2 extends Co1{
Co2(String a){
}
// aqui a subclasse implicitamente chama super() que é o construtor padrao da class pai.
~
class Co3{
Co2(int s){}
}

class Co4 extends Co3{
Co4(){
super(4);//se vc nao colocar essa linha o codigo nao compila pq vc  é obrigado a chamar os construtores da superclasse
}
}

flw! espero ter ajudado!

É que quando vi o código tava tão identado que eu não percebi e o pior ainda acabei dando um certo branco. O código que eu postei já postei organizadozinho pra todo mundo entender melhor e me passar a dica.

;)

LPJava
anderson.bonavides:
LPJava:
kd o construtor da superclasse? nao tem ele na subclasse.. sempre que a superclasse ter um construtor que nao seja padrao.. vc vai ter que chamar ele na subclasse..SEMPRE. E lembrando que qdo vc nao criar o construtor temos o padrao.. entao quando envolver herança dar uma olhada sempre na parte de construtores muitas pedaginhas moram ai...
class Co1{

}

class Co2 extends Co1{
Co2(String a){
}
// aqui a subclasse implicitamente chama super() que é o construtor padrao da class pai.
~
class Co3{
Co2(int s){}
}

class Co4 extends Co3{
Co4(){
super(4);//se vc nao colocar essa linha o codigo nao compila pq vc  é obrigado a chamar os construtores da superclasse
}
}

flw! espero ter ajudado!

É que quando vi o código tava tão identado que eu não percebi e o pior ainda acabei dando um certo branco. O código que eu postei já postei organizadozinho pra todo mundo entender melhor e me passar a dica.

;)

nao conte com isso no exame!!

Criado 15 de janeiro de 2008
Ultima resposta 16 de jan. de 2008
Respostas 6
Participantes 4