Est-il bon d'avoir un constructeur en classe abstraite?Est-ce bon d'avoir un constructeur en classe abstraite?
Est-ce une bonne pratique de programmation pour créer un constructeur de classe abstraite? Puisque les classes abstraites ne peuvent pas être initialisées, leurs classes enfants sont initialisées.
Voici ma structure de classe.
public abstract class Scheduler
{
private Storyboard timer;
protected Scheduler()
{
// initialize the timer here.
timer = new Storyboard();
this.PollInterval = 60;
}
}
public class TaskScheduler : Scheduler
{
public TaskScheduler()
: base()
{
}
}
hmm, bon exemple. –
@JonSkeet désolé de nécromancer un post de 2010 mais l'OP n'avait pas de params dans son constructeur de base, il vaut la peine de mentionner qu'appeler ': base()' dans une classe dérivée est redondant si le seul ctor de la classe de base est celui par défaut (parce que ça s'appelle quand même). J'ai un souci de "cacher" le besoin des paramètres de ctor, disons que la classe de base nécessite un 'IMagicWand', il n'y a aucun moyen pour la classe dérivée de connaître cette exigence jusqu'à ce que le compilateur s'en plaint - * c'est mon problème avec constructeurs protégés dans les classes abstraites ... ou est-ce que je suis en train de trop réfléchir? –