Skip to main content

Hvad er en abstrakt klasse?

I objektorienteret programmering giver en abstrakt klasse en baseklasse, der kan bruges til at give andre klasser delvis implementering og interface.De er af sig selv ufuldstændige og bruges i arvssituationer på mange programmeringssprog som Java, C ++ og C#.Deres anvendelse som baseklasse betyder, at de ofte omtales som en abstrakt baseklasse (ABC).

En integreret del af objektorienteret programmering fjerner dataabstraktion de unødvendige detaljer om et objekt.I det væsentlige koger det objektet ned til dets vigtigste identificerende egenskaber.Disse grundlæggende egenskaber giver en plan, der kan bruges til at skabe andre objekter med de samme egenskaber, der kun adskiller sig i detaljerne.

Denne plan er defineret som en klasse.Klasser bruges til at indkapsle koden, hvilket gør det lettere for programmereren, fordi han kan henvise til specifikke almindelige rutiner i stedet for at skrive rutinerne igen og igen.Programmerere skaber børneobjekter fra klasser, og disse objekter arver funktionerne og metoderne inden for forældreklassen.

Formålet med en abstrakt klasse er at være den ramme, hvorpå andre klasser er bygget.Objekter kan ikke oprettes direkte fra en abstrakt klasse, kun fra underklasserne, der hører til den abstrakte klasse.For et objekt, der skal arve fra en abstrakt klasse, skal der oprettes en underklasse.Objekter af en oprettet underklasse af en abstrakt klasse arve egenskaber ved den abstrakte klasse.

Hver klassemodellerer et koncept, og abstrakte klasser har en tendens til at modellere flere abstrakte koncepter ved hjælp af abstrakte metoder.Abstrakte metoder er subroutiner inde i en abstrakt klasse, der ikke indeholder nogen implementering.Disse underprogrammer bruges som pladsholdere til at blive overskrevet af en underklasse eller et objekt designet baseret på den klasse, der indeholder selve den abstrakte metode.

Der er forskellige metoder til at skabe en abstrakt klasse.I C ++ oprettes for eksempel en abstrakt klasse ved at udvikle en klasse med mindst en abstrakt metode eller ren virtuel funktion.Java bruger et nøgleord, "abstrakt" til at betegne en abstrakt klasse.De er dog ikke defineret i programmeringssprog, der ikke understøtter ideen om arv.

Arv er processen med at skabe nye objekter fra klasser, hvor de nye objekter kan bruge de funktioner og metoder, der er defineret i deres forældreklasser uden behov forGentag programmet.Dette er grunden til, at en abstrakt klasse er nyttig.Børneklasser og børneobjekter af disse underklasser arver egenskaber fra den overordnede abstrakte klasse.Abstrakte klasser betragtes som superklasser og er øverst i klassestrukturhierarkiet, så de har ingen mening i et sprog, der ikke understøtter arv.