Abstrakt Klass vs Betongklasse
De fleste av de populære moderne objektorienterte programmeringsspråkene som Java og C # er klassebaserte. De oppnår objektorienterte begreper som innkapsling, arv og polymorfisme gjennom bruk av klasser. Klasser er en abstrakt representasjon av virkelige verdensobjekter. Klasser kan enten være konkrete eller abstrakte avhengig av nivået av implementering av metodens funksjonalitet. En konkret klasse implementerer alle sine metoder. En abstrakt klasse kan betraktes som en begrenset versjon av en vanlig (konkret) klasse, der den kan inneholde delvis implementerte metoder. Vanligvis betegnes betongklasser som (bare) klasser.
Hva er betongklasse?
Standardklassen er en konkret klasse. Klassesøkeordet brukes til å definere klasser (for eksempel i Java). Og vanligvis blir de bare referert til som klasser (uten adjektivbetong). Betongklasser viser den konseptuelle representasjonen av virkelige verdensobjekter. Klasser har egenskaper som kalles attributter. Attributter implementeres som globale og instansvariabler. Metoder i klassene representerer eller definerer oppførselen til disse klassene. Metoder og attributter av klasser kalles medlemmer av klassen. Typisk innkapsling oppnås ved å gjøre attributtene private, mens du lager offentlige metoder som kan brukes til å få tilgang til disse attributter. Et objekt er forekomsten av en klasse. Arv gir brukeren muligheten til å forlenge klasser (kalt underklasser) fra andre klasser (kalt superklasser). Polymorfisme tillater programmereren å erstatte et objekt av en klasse i stedet for et objekt av sin superklasse. Vanligvis blir substantivene som finnes i problemdefinisjonen direkte klasser i programmet. Og på samme måte blir verker metoder. Offentlige, private og beskyttede er de typiske tilgangsmodifiseringene som brukes til klasser.
Hva er abstrakt klasse?
Abstrakte klasser er deklarert ved hjelp av abstrakt søkeord (for eksempel i Java,). Vanligvis kan abstrakte klasser, også kjent som abstrakte baseklasser (ABC), ikke instantieres (en forekomst av den klassen kan ikke opprettes). Så, abstrakte klasser er bare meningsfulle å ha hvis programmeringsspråket støtter arv (evne til å lage undergrupper fra å utvide en klasse). Abstrakte klasser representerer vanligvis et abstrakt konsept eller enhet med delvis eller ingen implementering. Derfor fungerer abstrakte klasser som foreldre klasser hvorfra barneklassene er avledet slik at barneklassen vil dele de ufullstendige egenskapene til foreldreklassen og funksjonaliteten kan legges til for å fullføre dem.
Abstrakte klasser kan inneholde abstrakte metoder. Underklasser som utvider en abstrakt klasse, kan implementere disse (arvede) abstrakte metoder. Hvis barnklassen implementerer alle slike abstrakte metoder, blir det en konkret klasse. Men hvis det ikke blir barnklassen også en abstrakt klasse. Hva dette betyr er at når programmøren nominerer en klasse som et abstrakt, sier hun at klassen vil være ufullstendig og den vil ha elementer som må fylles ut av arvelige underklasser. Dette er en fin måte å skape en kontrakt mellom to programmører, noe som forenkler oppgavene i programvareutvikling. Programmereren, som skriver kode for å arve, må følge metoden definisjonene nøyaktig (men selvfølgelig kan hun selv gjennomføre).
Hva er forskjellen mellom Abstract Class og Concrete Class?
Abstrakte klasser har vanligvis delvis eller ingen implementering. På den annen side har konkrete klasser alltid full gjennomføring av sin oppførsel. I motsetning til konkrete klasser kan abstrakte klasser ikke bli instantiated. Derfor må abstrakte klasser forlenges for å gjøre dem nyttige. Abstrakte klasser kan inneholde abstrakte metoder, men konkrete klasser kan ikke. Når en abstrakt klasse utvides, er alle metoder (både abstrakte og konkrete) arvet. Den arvelige klassen kan implementere noen eller alle metodene. Hvis ikke alle abstrakte metoder blir implementert, blir den klassen også en abstrakt klasse.