Indholdsfortegnelse:
Definition - Hvad betyder afledt klasse?
En afledt klasse i forbindelse med C # er en klasse oprettet eller afledt af en anden eksisterende klasse. Den eksisterende klasse, hvorfra den afledte klasse skabes gennem arv, er kendt som base- eller superklasse.
Når den arver fra baseklasse, arver den afledte klasse implicit alle medlemmerne (undtagen konstruktører og destruktører), som den genbruger, udvider og ændrer baseklasseens opførsel. Den afledte klasse tilsidesætter egenskaberne og metoderne for baseklassen, så den repræsenterer den specialiserede version af baseklassen. C # giver mulighed for at tilsidesætte og skjule metoder til baseklasse i afledt klasse, der får begge klasser til at udvikle sig frit og opretholde binær kompatibilitet.
Techopedia forklarer Derived Class
Følgende er nogle af funktionerne i afledte klasser i C #:
- Som i Java og i modsætning til C ++, kan en afledt klasse ikke have mere end en baseklasse, men kan afledes fra mere end en grænseflade. Dog arver det alle medlemmer af dets overordnede baseklasser, der er erklæret i dets arvehierarki, på grund af arvets transitive karakter
- Adgangsmodifikatorer, der bruges i erklæringen af afledt klasse, specificerer tilladelserne til at bruge medlemmer af dens baseklasse
- Kode i konstruktøren af en afledt klasse, der udføres under dens oprettelse, udføres først efter udførelse af konstruktør af dens baseklasse
- Afledt klasse skal bruge modifikatoren, 'tilsidesætte' for at erklære den virtuelle metode (erklæret i sin baseklasse med 'virtuel' nøgleord), der skal tilsidesættes. Kun forekomstmetoder og egenskaber kan tilsidesættes
- Afledt klasse kan have en ny metode, der skjuler den virtuelle metode, der er erklæret i basen (med lignende signatur) ved hjælp af nøgleordet, 'nyt'. For at få adgang til metoden i baseklasse fra afledt klasse, kan 'base' nøgleord bruges
- En klasse kan forhindre afledning ved at erklære den som 'forseglet' og kan ikke bruges som baseklasse
- En afledt klasse med baseklasse som en abstrakt klasse kan instantieres, hvis den afledte klasse ikke erklæres abstrakt, og afledt klasse har implementeringen af alle abstrakte metoder, der er erklæret i basisklassen
