Hva er abstrakt klasse i Scala?
I Scala fungerer en abstrakt klasse som en supertype som inneholder informasjon om undertypeklasser. For å oppnå abstraksjon opprettes den abstrakte klassen. Abstraksjon betyr å skjule informasjonen om implementeringen og bare vise den spesifikke funksjonaliteten til sluttbrukerne. Vi kan bare arve ett abstrakt av en klasse for å instantisere riktig. En abstrakt klasse kan ikke instantieres direkte. For å konstruere en abstrakt klasse, må vi representere en klasse med søkeordet.
Syntaks av den abstrakte klassen i Scala
Syntaksen til Scala Abstract -klassen ser ut på denne måten.
Abstract Class Class_name
def Abstract_method ()
Sammendraget er representert med nøkkelordet "abstrakt" med klassenavnet. I abstrakt klasse har vi uttalt abstrakte metoder. Den abstrakte metoden er uten å ha kode i kroppen.
Hvordan bruke abstrakt klasse i Scala i Ubuntu 20.04
La oss ta et eksempel og se hvordan du danner en abstrakt klasse sammen med en abstrakt metode i Scala.
Eksempel 1: Opprette en abstrakt klasse i Scala
Vi kan lage en abstrakt klasse i et program ved å bruke det "abstrakte" nøkkelordet med klassenavnet som er spesifisert. La oss ha noe praktisk å lage den abstrakte klassen.
I koden ovenfor har vi erklært en klasse med nøkkelordet "abstrakt" og kalt den klassen som "student". I den abstrakte klassen har vi definert abstrakte metoder som "informasjon". Når vi definerer en abstrakt metode i en abstrakt klasse, trenger vi ingen implementering der. Etter å ha opprettet den abstrakte klassen, har vi laget en vanlig klasse som heter “Degree”. Denne klassen "grad" utvider den abstrakte klassen. Her viser den abstrakte metoden “Informasjon” studentnavnet og gradsnavnet. Deretter har vi en hovedmetode der vi må definere "grad" -klasseobjektet. Vi har laget en variabel OBJ og tildelt det til forekomsten av "grad" -klassen. Vi har brukt et nytt nøkkelord for å instantisere klassen. Vi bruker OBJ -forekomsten med "informasjon" -metoden som heter.
Vi har laget en abstrakt klasse og definerte abstrakte metoder i en vanlig klasse. Utgangen fra den abstrakte metoden for abstrakt klasse gjennom utskriftserklæring er på terminalskjermen.
Eksempel nr. 2: Opprette en abstrakt klasseforekomst i Scala
I Scala kan vi ikke instantisere en abstrakt klasse eksplisitt. Hvis vi prøver å gjøre det, vil vi ha en kompilasjonsfeil. Nedenfor prøver vi å instantisere en abstrakt klasse ved å lage en forekomst av abstrakt for å vite hvilken feilmelding den vil gi.
I ovennevnte kodeimplementering har vi laget en abstrakt klasse med det "abstrakte" nøkkelordet og gitt navnet på klassen som "universitet". Så, uten et organ, har vi definert den abstrakte metoden. Den abstrakte metoden brukes i hovedmetoden. Vi opprettet et objekt av "University" -klassen i hovedfunksjonen til den abstrakte klassen. Deretter har vi tildelt det objektet til forekomsten av det abstrakte klassen "universitetet" med det nye nøkkelordet. Dette vil instantisere den abstrakte klassen.
Vi har en feilmelding som en utgang som vi ikke kan instantisere den abstrakte klassen. Som et resultat kan vi ikke generere objekter av abstrakte klasser.
Eksempel nr. 3: Opprette felt i abstrakt klasse i Scala
Vi kan også definere felt i abstrakt klasse. Den abstrakte klassen fikk tilgang til disse feltene og deretter, den abstrakte metoden i klassen arvet den abstrakte klassen. Nedenfor er implementeringen av koden som er vist.
I koden ovenfor har vi laget en abstrakt klasse med nøkkelordet "abstrakt" og kalt klassen "lærere". I den abstrakte klassen inneholder feltene en variabel som "lærernavn" som initialiseres med strengverdien og har en angitt datatype -streng. Det andre feltet er også med variabelen definert som "lærer_subjekt" som også er satt som en strengdatatype og initialisert med strengverdien. Her er "Teacher_Detail" en abstrakt metode for abstrakt klasse "lærere". Nå er “CS” erklært som en klasse som utvider den abstrakte klassen. I denne klassen får vi tilgang til den abstrakte klassemetoden og felt i den abstrakte klassen ved å kalle den abstrakte metoden. Vi opprettet et objekt for å instantisere klassen. Deretter bruker vi en OBJ -forekomst med klassemetoden “CS”.
Vi har lærerens navn og lærerens detaljer som en utdata nedenfor.
Eksempel 4: Opprette en konstruktør i Scala
Vi kan lage en abstrakt klassekonstruktør i koden. Vi kan bruke konstruktøren til å initialisere et objekt, men objektet kan ikke bygges der. Når vi oppretter en forekomst av en arvelig klasse, kan vi ringe en konstruktør av en abstrakt klasse.
I koden ovenfor har vi erklært en abstrakt klasse som "bok" sammen med konstruktøren. Konstruktøren av en abstrakt klasse tar to argumenter som "tittel" og "forfatter", i den abstrakte klassen har vi definert abstrakt metodedetalj. Nå, utvid den abstrakte klassen med klassen "roman". Klassen "roman" vil få tilgang til den abstrakte metoden og returnere konstruktørverdiene som spiller utdataene fra ovennevnte implementeringskode.
Konklusjon
Som vi har diskutert viktigheten av den abstrakte klassen, er den veldig nyttig i Scala. Vi har en kort introduksjon og definisjon av en abstrakt klasse i Scala. Vi har også gått gjennom de forskjellige eksemplene kodeimplementeringer. Vi hadde en dyp diskusjon om den abstrakte klassen i Scala. Du vil ha et sterkt grep om den abstrakte klassen i Scala etter å ha lest artikkelen.