Indholdsfortegnelse:
Definition - Hvad betyder baseklasse - .NET?
En baseklasse i forbindelse med C # er en klasse, der bruges til at oprette eller udlede andre klasser. Klasser, der stammer fra en baseklasse, kaldes børneklasser, underklasser eller afledte klasser. En baseklasse arver ikke fra nogen anden klasse og betragtes som forælder til en afledt klasse.
Baseklassen danner de midler, hvormed arv opnås gennem afledning. En klasse, der stammer fra en baseklasse, arver både data og adfærd. F.eks. Kan køretøj være en baseklasse, hvorfra de afledte klasser bil og bus kan afledes. Både bil og bus er køretøjer, og de repræsenterer hver deres specialiseringer af baseklassen.
Som i Java, men i modsætning til C ++ understøtter C # ikke flere arv af klasser. C # adskiller sig fra Java ved eksplicit at markere en virtuel modifikator for alle virtuelle medlemmer.
En baseklasse er også kendt som en forældreklasse eller superklasse.
Techopedia forklarer Base Class - .NET
Baseklasse hjælper med at skabe en specialiseret klasse, der kan genbruge den kode, der implicit opnås fra baseklassen (undtagen konstruktører og destruktører) og udvide funktionaliteten af baseklasse ved at tilføje eller tilsidesætte medlemmer, der er relevante for afledt klasse i afledt klasse. I C # erklæres begivenheder i baseklasse, der kan rejses fra afledte klasser. Generiske klasser, der bruges til at indkapsle operationer, der ikke er specifikke for en bestemt datatype, fungerer som baseklasser, hvilket tilvejebringer generisk opførsel for at opnå fleksibilitet og kodegenanvendelighed.
Nøglen egenskaber for baseklassen i C #:
- Basisklasse medlemmer (konstruktør, en instansmetode eller forekomstegenskabsadgang) fås adgang til afledt klasse ved hjælp af "base" nøgleordet.
- Baseklasser instantiseres automatisk før afledte klasser.
- Afledt klasse kan kommunikere til baseklassen under instantiering ved at kalde baseklasse-konstruktøren med en matchende parameterliste.
- Basisklasse medlemmer kan fås adgang til fra den afledte klasse gennem en eksplicit rollebesætning.
- Da en baseklasse selv kan være en afledt klasse, kan en klasse have mange baseklasser.
- Medlemmer af en afledt klasse kan få adgang til de offentlige, beskyttede, interne og beskyttede interne medlemmer af en baseklasse.
- På grund af arvets transitive karakter, skønt en afledt klasse kun har en baseklasse, arver den de medlemmer, der er erklæret som forælder til baseklassen.
- Ved at erklære en metode i baseklasse som virtuel, kan den afledte klasse tilsidesætte denne metode med sin egen implementering. Både den tilsidesatte og overstyrende metode og egenskab skal have de samme modifikatorer på adgangsniveau, såsom virtuel, abstrakt eller tilsidesættelse.
- Når nøgleordet "abstrakt" bruges til en metode, bør det tilsidesættes i enhver ikke-abstrakt klasse, der direkte arver fra den klasse.
- Abstrakte baseklasser oprettes ved hjælp af det "abstrakte" nøgleord i sin erklæring og bruges til at forhindre direkte initiering ved hjælp af det "nye" nøgleord. De kan kun bruges gennem afledte klasser, der implementerer abstrakte metoder.
- En baseklasse kan forhindre andre klasser i at arve den ved at erklære alle medlemmerne som "forseglede".
- Basisklasse medlemmer kan skjules i en afledt klasse ved hjælp af nøgleordet "nyt" for at indikere, at medlemmet ikke er beregnet til at være en tilsidesættelse af basemedlemmet. Hvis "nyt" ikke bruges, genererer compileren en advarsel.
Selvom baseklassen og interface kan bruges om hverandre, er klasser mere fleksible end grænseflader fra et versioneringsperspektiv. Baseklasse foretrækkes i de fleste tilfælde bortset fra følgende scenarier, hvor:
- Flere ikke-relaterede klasser danner basis for den afledte klasse
- Klasser har allerede etablerede baseklasser
- Aggregering er ikke egnet eller praktisk
