Basklass - .NET

Författare: Peter Berry
Skapelsedatum: 11 Augusti 2021
Uppdatera Datum: 22 Juni 2024
Anonim
Python Web Apps with Flask by Ezra Zigmond
Video: Python Web Apps with Flask by Ezra Zigmond

Innehåll

Definition - Vad betyder basklass - .NET?

En basklass, i con av C #, är en klass som används för att skapa, eller härleda, andra klasser. Klasser som härrör från en basklass kallas barnklasser, underklasser eller härledda klasser. En basklass ärver inte någon annan klass och anses vara förälder till en härledd klass.

Basklassen bildar de medel som arv åstadkommes genom härledning. En klass härrör från en basklass ärver både data och beteende. Exempelvis kan fordon vara en basklass från vilken de härledda klasserna bil och buss kan härledas. Både bil och buss är fordon och de representerar sina egna specialiseringar av basklass.

Liksom i Java men till skillnad från C ++ stöder inte C # flera arv av klasser. C # skiljer sig från Java genom att markera en virtuell modifierare för alla virtuella medlemmar.

En basklass kallas också föräldraklass eller superklass.


En introduktion till Microsoft Azure och Microsoft Cloud | I hela denna guide kommer du att lära dig vad cloud computing handlar om och hur Microsoft Azure kan hjälpa dig att migrera och driva ditt företag från molnet.

Techopedia förklarar Base Class - .NET

Basklass hjälper till att skapa en specialiserad klass som kan återanvända koden som implicit erhålls från basklassen (utom konstruktörer och destruktorer) och utöka funktionaliteten för basklassen genom att lägga till eller åsidosätta medlemmar som är relevanta för härledd klass i härledd klass. I C # deklareras händelser i basklass som kan tas upp från härledda klasser. Generiska klasser som används för att kapsla in operationer som inte är specifika för en viss datatyp fungerar som basklasser, vilket ger generiskt beteende för att uppnå flexibilitet och återanvändbarhet för kod.

Nyckeln egenskaperna för basklassen i C #:


  • Basklassmedlemmar (konstruktör, en instansmetod eller instansegenskapstillbehör) åtkomst till härledd klass med hjälp av nyckelordet "bas".
  • Basklasser instanseras automatiskt före härledda klasser.
  • Deriverad klass kan kommunicera till basklassen under inställning genom att anropa basklasskonstruktören med en matchande parameterlista.
  • Basklassmedlemmar kan nås från den härledda klassen via en uttrycklig roll.
  • Eftersom en basklass själv kan vara en härledd klass kan en klass ha många basklasser.
  • Medlemmar i en härledd klass kan komma åt allmänheten, skyddade, interna och skyddade interna medlemmar i en basklass.
  • På grund av arvets övergående karaktär, även om en härledd klass endast har en basklass, ärver den medlemmarna som deklareras som förälder till basklassen.
  • Genom att förklara en metod i basklassen som virtuell kan den härledda klassen åsidosätta den metoden med sin egen implementering. Både den åsidosatta och åsidosättande metoden och egenskapen måste ha samma åtkomstnivåmodifierare som virtuellt, abstrakt eller åsidosättande.
  • När nyckelordet "abstrakt" används för en metod, bör det åsidosättas i alla icke-abstrakta klasser som direkt ärver från den klassen.
  • Abstrakta basklasser skapas med hjälp av det "abstrakta" nyckelordet i dess deklaration och används för att förhindra direkt initiering med hjälp av det "nya" nyckelordet. De kan endast användas genom härledda klasser som implementerar abstrakta metoder.
  • En basklass kan förhindra att andra klasser ärver från den genom att förklara alla medlemmar som "förseglade".
  • Basklassmedlemmar kan döljas i en härledd klass genom att använda nyckelordet "nytt" för att indikera att medlemmen inte är avsedd att vara en åsidosättning av basmedlemmet. Om "nytt" inte används genererar kompilatorn en varning.

Även om basklassen och gränssnittet kan användas omväxlande, är klasserna mer flexibla än gränssnitt från ett versioneringsperspektiv. Basklass föredras i de flesta fall utom följande scenarier där:


  • Flera icke relaterade klasser utgör basen för den härledda klassen
  • Klasser har redan etablerade basklasser
  • Aggregering är inte lämplig eller praktisk
Denna definition har skrivits i C #