Vad är en abstrakt klass?
Vid objektorienterad programmering tillhandahåller en abstrakt klass en basklass som kan användas för att ge andra klasser delvis implementering och gränssnitt. De är ofullständiga av sig själva och används i arvsituationer på många programmeringsspråk som Java, C ++ och C #. Deras användning som basklass betyder att de ofta kallas en abstrakt basklass (ABC).
En integrerad del av objektorienterad programmering, abstraktion av data tar bort de onödiga detaljerna i ett objekt. I huvudsak kokar det objektet ner till dess huvudsakliga identifierande egenskaper. Dessa grundläggande egenskaper tillhandahåller en plan som kan användas för att skapa andra objekt med samma egenskaper, som bara skiljer sig åt i detaljerna.
Denna plan är definierad som en klass. Klasser används för att kapsla in koden, vilket gör det enklare för programmeraren, eftersom han kan referera till specifika vanliga rutiner istället för att skriva rutinerna om och om igen. Programmerare skapar barnobjekt från klasser, och dessa objekt ärver funktionerna och metoderna i föräldraklassen.
Syftet med en abstrakt klass är att vara den ram som andra klasser bygger på. Objekt kan inte skapas direkt från en abstrakt klass, endast från underklasserna som tillhör den abstrakta klassen. För att ett objekt ska ärva från en abstrakt klass måste en underklass skapas. Objekt av en skapad underklass av en abstrakt klass ärver egenskaperna hos den abstrakta klassen.
Varje klass modellerar ett koncept, och abstrakta klasser tenderar att modellera mer abstrakta begrepp med abstrakta metoder. Abstrakta metoder är subrutiner i en abstrakt klass som inte innehåller någon implementering. Dessa subroutiner används som platshållare som ska skrivas över av en underklass eller ett objekt utformat baserat på klassen som innehåller själva den abstrakta metoden.
Det finns olika metoder för att skapa en abstrakt klass. I C ++ skapas till exempel en abstrakt klass genom att utveckla en klass med minst en abstrakt metod eller ren virtuell funktion. Java använder ett nyckelord "abstrakt" för att beteckna en abstrakt klass. De definieras dock inte i programmeringsspråk som inte stöder idén om arv.
Arv är processen att skapa nya objekt från klasser där de nya objekten kan använda funktionerna och metoderna som definieras i sina överordnade klasser utan att behöva ändra om programmet. Det är därför en abstrakt klass är användbar. Barnklasser och barnobjekt i dessa underklasser ärver egenskaper från föräldraabstrakt klassen. Abstrakta klasser betraktas som superklass och är högst upp i klassstrukturhierarkin, så de har ingen mening med ett språk som inte stöder arv.