Construtores

[code]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);
}
}[/code]

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

Grato!

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"); }

[code]public Person(){

}[/code]

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

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.

[code]~
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
}
}
[/code]

flw! espero ter ajudado!

[quote=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.

[code]~
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
}
}
[/code]

flw! espero ter ajudado!

[/quote]

É 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.

:wink:

[quote=anderson.bonavides][quote=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.

[code]~
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
}
}
[/code]

flw! espero ter ajudado!

[/quote]

É 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.

;)[/quote]

nao conte com isso no exame!!