Abstract-klass i C# med exempel

โšก Smart sammanfattning

C# Abstract-klassen definierar en ritning som andra klasser รคrver men inte kan instansiera direkt. Den hรคr resursen fรถrklarar abstraction, magmusklernatract-nyckelord, virtuella metoder och ett fungerande C#-exempel pรฅ bas- och underklasser.

  • ๐Ÿงฑ Kรคrnkoncept: En magmuskeltract-klassen รคr markerad med magmusklernatract-nyckelordet och kan inte instansieras pรฅ egen hand.
  • ๐Ÿงฌ Arvsroll: Den fungerar som en basklass som underklasser รคrver och sedan implementerar eller รฅsidosรคtter dess metoder.
  • ๐Ÿ”‘ Virtuella metoder: Metoder markerade som virtuella definierar beteende som hรคrledda klasser fรถljer utan att omdefiniera originalet.
  • ๐Ÿ› ๏ธ Praktiskt exempel: Exemplet bygger magmusklertract Handledningskurs och en Guru99 Handledning fรถr underklass i C#.
  • ๐Ÿ“ Designfรถrdel: Abstract-klasser tillรคmpar en konsekvent struktur รถver underklasser samtidigt som de tillรฅter specialiserad funktionalitet.

C# Abstract-klass

Vad รคr magmusklertract-klass i C#?

Abstract-klass kan aldrig instansieras och markeras med nyckelordet abstract. En magmuskeltract-klassen innehรฅller noll eller fler abstract-metoder i den. Magmusklertract-klassen fungerar som en basklass och รคr utformad fรถr att รคrvas av underklasser som antingen implementerar eller รฅsidosรคtter dess metod.

Lรฅt oss lรคra oss magmusklertract-klassen i C# med exemplet nedan. Nedan fรถljer definitionen av en klass som heter 'Animal'. Nรคr klassen 'Animal' รคr definierad finns inget kรคnt om djuret, oavsett om det รคr en hund eller en katt. Metoden som kallas description รคr bara en generisk metod definierad fรถr klassen.

Abstract-klass i C#


Nu nรคr det รคr kรคnt exakt vad Djuret kommer att bli skapar vi en annan klass som รคrver basklassen. Om vi โ€‹โ€‹vet att djuret i sjรคlva verket รคr en hund skapar vi hundklassen som รคrver huvudbasklassen. Den viktigaste skillnaden hรคr รคr att hundklassen inte kan รคndra definitionen av Description-metoden i Animal-klassen. Den mรฅste definiera sina egna C# abstract-metod som kallas Dog-Descriptjon. Detta รคr det grundlรคggande konceptet med C# abstract-klasser.

Abstract-klass i C#

Skapa en magmuskeltract-klass i C#

Lรฅt oss se magmusklernatract-klass i C# med realtidsexempel pรฅ hur vi kan รคndra vรฅr kod fรถr att inkludera en C# abstract-klassen. Observera att vi inte kommer att kรถra koden, eftersom det inte finns nรฅgot som kan kรถras med en C# abstractionklass.

Steg 1) Som ett fรถrsta steg, lรฅt oss bygga en magmuskeltract-klassen. Klassen kommer att kallas Handledning och kommer bara att ha en metod. All kod mรฅste skrivas i Program.cs-filen.

Skapa en magmuskeltract-klass i C#

Code Fรถrklaring:-

  1. Vi definierar fรถrst magmusklernatract-klass. Observera anvรคndningen av magmusklernatract-nyckelord. Detta anvรคnds fรถr att beteckna att klassen รคr en abstract-klass.
  2. Hรคrnรคst definierar vi vรฅr metod som inte gรถr nรฅgonting. Metoden mรฅste ha nyckelordet virtual. Det betyder att metoden inte kan รคndras av underklassen. Detta รคr ett grundlรคggande krav fรถr alla abs.tract-klass.


Steg 2) Lรฅt oss nu lรคgga till vรฅr barnklass. Denna kod lรคggs till i filen Program.cs.

Skapa en magmuskeltract-klass i C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 abstract class Tutorial
 {
  public virtual void Set()
  {

  }
 }
  class Guru99Tutorial:Tutorial
  {
   protected int TutorialID;
   protected string TutorialName;

   public void SetTutorial(int pID,string pName)
   {
    TutorialID=pID;
    TutorialName=pName;
   }

   public String GetTutorial()
   {
    return TutorialName;
   }

  static void Main(string[] args)
  {
   Guru99Tutorial pTutor=new Guru99Tutorial();

   pTutor.SetTutorial(1,".Net");

   Console.WriteLine(pTutor.GetTutorial());

   Console.ReadKey();
  }
 }
}

Det finns inget exceptionellt med den hรคr koden. Vi definierar bara en klass som heter 'Guru99Tutorial' som รคrver magmusklernatract Handledningsklass. Vi definierar sedan samma metoder som vi har anvรคnt tidigare.

Obs:
Hรคr kan vi inte รคndra definitionen av Set-metoden som definierades i Tutorial-klassen. I Tutorial-klassen hade vi definierat en metod som heter 'Set' (public virtual void Set()). Eftersom metoden var en del av abstracI klassen C# fรฅr vi inte definiera Set-metoden igen i Guru99 Handledningskurs.

Vanliga frรฅgor

En magmuskeltracEn t-klass kan innehรฅlla implementerade metoder, fรคlt och konstruktorer, och en klass รคrver bara en. Ett grรคnssnitt definierar bara en konstruktor.tract, och en klass kan implementera mรฅnga grรคnssnitt.

Ja. AI-kodningsassistenter som GitHub Copilot kan generera magmusklertract-klasser, fรถreslรฅ metodsignaturer och skapa hรคrledda klasser frรฅn en prompt. Utvecklare bรถr fortfarande granska utdata.

AI-handledare fรถrklarar magmusklertraction med skrรคddarsydda exempel och analogier, och svarar pรฅ frรฅgor direkt. De omvandlar kod till enkelt sprรฅk, hjรคlperping nybรถrjare fรถrstรฅr hur magmusklertract-klasser dรถljer detaljer och definierar delat beteende.

Sammanfatta detta inlรคgg med: