Huis Ontwikkeling Wat is basisklasse - .net? - definitie van techopedia

Wat is basisklasse - .net? - definitie van techopedia

Inhoudsopgave:

Anonim

Definitie - Wat betekent Base Class - .NET?

Een basisklasse, in de context van C #, is een klasse die wordt gebruikt om andere klassen te maken of af te leiden. Klassen die zijn afgeleid van een basisklasse worden onderliggende klassen, subklassen of afgeleide klassen genoemd. Een basisklasse erft niet van een andere klasse en wordt beschouwd als ouder van een afgeleide klasse.


De basisklasse vormt het middel waarmee overerving tot stand wordt gebracht door afleiding. Een klasse afgeleid van een basisklasse neemt zowel gegevens als gedrag over. Voertuig kan bijvoorbeeld een basisklasse zijn waaruit de afgeleide klassen auto en bus kunnen worden afgeleid. Zowel auto als bus zijn voertuigen, en ze vertegenwoordigen elk hun eigen specialisaties van de basisklasse.


Net als in Java, maar in tegenstelling tot C ++, ondersteunt C # geen meerdere overerving van klassen. C # verschilt van Java door expliciet een virtuele modifier voor alle virtuele leden te markeren.


Een basisklasse wordt ook wel een bovenliggende klasse of superklasse genoemd.

Techopedia verklaart Base Class - .NET

Basisklasse helpt bij het maken van een gespecialiseerde klasse die de code die impliciet is verkregen van de basisklasse (behalve constructors en destructors) opnieuw kan gebruiken en de functionaliteit van de basisklasse uitbreiden door leden toe te voegen of te overschrijven die relevant zijn voor de afgeleide klasse in de afgeleide klasse. In C # worden gebeurtenissen in basisklasse gedeclareerd die kunnen worden opgehaald uit afgeleide klassen. Algemene klassen die worden gebruikt om bewerkingen in te sluiten die niet specifiek zijn voor een bepaald gegevenstype, dienen als basisklassen en bieden generiek gedrag om flexibiliteit en herbruikbaarheid van code te bereiken.


Sleutel de eigenschappen van de basisklasse in C #:

  • Basisklasse-leden (constructor, een instantiemethode of instantie-eigenschapstoegang) worden in afgeleide klasse benaderd met het trefwoord "base".
  • Basisklassen worden automatisch geïnstantieerd vóór afgeleide klassen.
  • Afgeleide klasse kan tijdens instantiëring communiceren met de basisklasse door de constructeur van de basisklasse aan te roepen met een bijbehorende parameterlijst.
  • Leden van de basisklasse kunnen worden benaderd vanuit de afgeleide klasse via een expliciete cast.
  • Aangezien een basisklasse zelf een afgeleide klasse kan zijn, kan een klasse veel basisklassen hebben.
  • Leden van een afgeleide klasse hebben toegang tot de openbare, beschermde, interne en beschermde interne leden van een basisklasse.
  • Vanwege de transitieve aard van overerving, hoewel een afgeleide klasse slechts één basisklasse heeft, erft de leden die zijn opgegeven in de bovenliggende klasse van de basisklasse.
  • Door een methode in de basisklasse virtueel te verklaren, kan de afgeleide klasse die methode overschrijven met zijn eigen implementatie. Zowel de vervangende als de vervangende methode en eigenschap moeten dezelfde toegangsniveau-modificaties hebben zoals virtueel, abstract of overschrijven.
  • Wanneer het trefwoord "abstract" wordt gebruikt voor een methode, moet het worden genegeerd in elke niet-abstracte klasse die rechtstreeks van die klasse overneemt.
  • Abstracte basisklassen worden gemaakt met het trefwoord "abstract" in de verklaring en worden gebruikt om directe initiatie met het trefwoord "new" te voorkomen. Ze kunnen alleen worden gebruikt via afgeleide klassen die abstracte methoden implementeren.
  • Een basisklasse kan voorkomen dat andere klassen ervan erven door alle leden als "verzegeld" te verklaren.
  • Leden van een basisklasse kunnen worden verborgen in een afgeleide klasse door het trefwoord 'nieuw' te gebruiken om aan te geven dat het lid niet bedoeld is om het basislid te overschrijven. Als "nieuw" niet wordt gebruikt, genereert de compiler een waarschuwing.

Hoewel de basisklasse en de interface uitwisselbaar kunnen worden gebruikt, zijn klassen flexibeler dan interfaces vanuit een versieperspectief. Basisklasse heeft in de meeste gevallen de voorkeur, behalve in de volgende scenario's:

  • Verschillende niet-gerelateerde klassen vormen de basis voor de afgeleide klasse
  • Klassen hebben al basisklassen
  • Aggregatie is niet geschikt of praktisch
Deze definitie is geschreven in de context van C #
Wat is basisklasse - .net? - definitie van techopedia