Scala Abstract Class

Scala Abstract Class
Vi må lage klasser i programmering på et hvilket som helst språk. Klassene har metoder og har verdier definert i dem. I det virkelige liv ønsker vi å skjule litt informasjon i en klasse eller ikke vil vise unødvendige detaljer om klassen. Bare å legge frem emnet som vi har laget for brukere. I Scala er det en vei ut av å skjule detaljer om implementering gjennom å lage en abstrakt klasse og bare vise funksjonaliteten vi ønsker å vise. Vi lærer konseptet med å lage en abstrakt klasse i Scala i denne artikkelen. Scalas abstrakte klasse og Javas abstrakte klasse er ganske like. La oss ha mer informasjon om Scala Abstract -klassen.

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.