Contrutores e herança

3 respostas
fiabani
Pessoal, encontrei algo parecido aqui no forum, mas ainda tenho dificuldades, vejam o exemplo abaixo:
public abstract class DAO {
    protected DB conn = new DB();
    protected String table;
    protected String pk;
    private Object pk_val;
    protected Map <String, Object> data = new HashMap <String, Object> ();
    protected List <String> fields = new ArrayList <String> ();

    public DAO(){
        initialize();
    }

    public DAO(Object id){
        pk_val = id;
        initialize();
    }
}

neste caso, quero extender esta classe:

public class ClienteDAO extends DAO{

public ClienteDAO(){
super();
}

public ClienteDAO(id){
super(id);
}

}

como eu deveria fazer para herdar o os construtores?
ou seja, para que eu pudesse extender da seguinte forma:

public class ClienteDAO extends DAO{}

obrigado

3 Respostas

T

Infelizmente você tem de fazer sempre

public class ClienteDAO extends DAO{  
   
    public ClienteDAO(){  
        super();  
    }  
   
    public ClienteDAO(id){  
        super(id);  
    }  
   
}

É mais claro e dá menos problemas que em C++ (onde os construtores que o compilador gera nem sempre são os que você quer).

luciano.eti

é… realmente contrutores não são herdados…

e ainda …se quiser que o construtor padrão seje implementado em caso de sobrecarga de construtores, deverá declará-lo…

[]'s

Luciano

CintiaDR

Vc poderia se alongar um pouco mais nessa explicação? Na verdade, eu sempre adorei os construtores herdados do C++ hehehe
Não entendi quais seriam os problemas.

Criado 1 de junho de 2009
Ultima resposta 1 de jun. de 2009
Respostas 3
Participantes 4