Una classe astratta è una classe che non può essere istanziata. Generalmente sono pensati per essere estesi / sottoclassi e generalmente hanno "metodi astratti" che devono essere implementati da sottoclassi.
Ho un corso con alcune funzionalità predefinite / condivise. Io lo uso abstract classper questo: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } …
Di recente ho dovuto aggiornare una classe base astratta su alcuni OSS che stavo usando in modo che fosse più testabile rendendoli virtuali (non potevo usare un'interfaccia poiché ne combinava due). Questo mi ha fatto pensare se dovevo contrassegnare tutti i metodi di cui avevo bisogno virtuale o se dovessi …
Ultimamente sono preoccupato per l'uso di classi astratte. A volte una classe astratta viene creata in anticipo e funziona come modello di come funzionerebbero le classi derivate. Ciò significa, più o meno, che forniscono alcune funzionalità di alto livello ma tralasciano alcuni dettagli che devono essere implementati dalle classi derivate. …
Sto codificando con un modello di stato per un dispositivo incorporato. Ho una classe base / astratta chiamata State e quindi ogni classe di stato discreta (concreta) implementa la classe State astratta. Nella classe di stato ho diversi metodi astratti. Se non implemento i metodi astratti nella classe discreta (concreta), …
Spesso è una buona idea avere una classe base astratta per isolare l'interfaccia dell'oggetto. Il problema è che la costruzione della copia, IMHO, è praticamente rotta per impostazione predefinita in C ++, con i costruttori di copie generati per impostazione predefinita. Quindi, quali sono i gotcha quando hai una classe …
Diciamo che abbiamo una classe astratta e lasciamo che questa classe abbia solo metodi astratti. Questa classe astratta è diversa da un'interfaccia che ha solo gli stessi metodi? Quello che sto cercando di sapere è se ci sono differenze sia filosoficamente, obiettivamente e nell'implementazione del linguaggio di programmazione sottostante tra …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.