Forskjellen mellom abstrakt klasse og arv

Innholdsfortegnelse:

Forskjellen mellom abstrakt klasse og arv
Forskjellen mellom abstrakt klasse og arv

Video: Forskjellen mellom abstrakt klasse og arv

Video: Forskjellen mellom abstrakt klasse og arv
Video: What is Systems engineering?, Explain Systems engineering, Define Systems engineering 2024, Juli
Anonim

Abstrakt klasse vs arv

Abstract class og Inheritance er to viktige objektorienterte konsepter som finnes i mange objektorienterte programmeringsspråk som Java. Abstrakt klasse kan betraktes som en abstrakt versjon av en vanlig (betong) klasse, mens Arv lar nye klasser utvide andre klasser. Abstrakt klasse er en klasse som ikke kan initialiseres, men som kan utvides. Så abstrakte klasser er bare meningsfulle å ha hvis programmeringsspråket støtter arv. I Java deklareres abstrakte klasser ved hjelp av abstrakt nøkkelord, mens Extends nøkkelord brukes for å arve fra en (super)klasse.

Hva er abstrakt klasse?

Vanligvis kan abstrakte klasser, også kjent som Abstrakte Base Classes (ABC), ikke instansieres (en forekomst av den klassen kan ikke opprettes). Så abstrakte klasser er bare meningsfulle å ha hvis programmeringsspråket støtter arv (evne til å lage underklasser fra å utvide en klasse). Abstrakte klasser representerer vanligvis et abstrakt konsept eller entitet med delvis eller ingen implementering. Derfor fungerer abstrakte klasser som overordnede klasser som barneklasser er avledet fra, slik at barneklassen vil dele de ufullstendige funksjonene til overordnet klassen, og funksjonalitet kan legges til for å fullføre dem.

Abstrakte klasser kan inneholde abstrakte metoder. Underklasser som utvider en abstrakt klasse kan implementere disse (arvede) abstrakte metodene. Hvis barneklassen implementerer alle slike abstrakte metoder, er det en konkret klasse. Men hvis den ikke gjør det, blir barneklassen også en abstrakt klasse. Hva alt dette betyr er at når programmereren nominerer en klasse som en abstrakt, sier hun at klassen vil være ufullstendig og den vil ha elementer som må fullføres av de arvende underklassene. Dette er en fin måte å lage en kontrakt mellom to programmerere på, som forenkler oppgaver innen programvareutvikling. Programmereren, som skriver kode for å arve, må følge metodedefinisjonene nøyaktig (men kan selvfølgelig ha sin egen implementering).

Hva er arv?

Inheritance er et objektorientert konsept, som lar nye klasser utvide andre klasser. Extends nøkkelord brukes til å implementere konseptet med arv i programmeringsspråket Java. Arv gir i hovedsak kodegjenbruk ved å tillate utvidelse av egenskaper og oppførsel til en eksisterende klasse med en nylig definert klasse. Når en ny underklasse (eller avledet klasse) utvider en superklasse (eller overordnet klasse), vil den underklassen arve alle attributter og metoder til superklassen. Underklassen kan valgfritt overstyre atferden (gi ny eller utvidet funksjonalitet til metoder) som er arvet fra den overordnede klassen. Vanligvis kan ikke en underklasse utvide flere superklasser (f.eks. i Java). Derfor kan du ikke bruke utvidelser for multippel arv. For å ha multippel arv, må du bruke grensesnitt.

Hva er forskjellen mellom abstrakt klasse og arv?

Abstrakte klasser representerer vanligvis et abstrakt konsept eller en enhet med delvis eller ingen implementering. Arv lar nye klasser utvide andre klasser. Fordi abstrakte klasser ikke kan instansieres, må du bruke konseptet med arv for å bruke abstrakte klasser. Ellers har en abstrakt klasse ingen nytte. Abstrakte klasser kan inneholde abstrakte metoder og når klassen utvides, arves alle metoder (abstrakte og konkrete). Den arvede klassen kan implementere hvilken som helst eller alle metodene. Hvis alle abstrakte metodene ikke er implementert, blir den klassen også en abstrakt klasse. En klasse kan ikke arve fra mer enn én abstrakt klasse (dette er ikke en kvalitet på abstrakte klasser i seg selv, men snarere en restriksjon for arv).

Relaterte innlegg:

Image
Image
Image
Image

Forskjellen mellom abstrakt klasse og konkret klasse

Image
Image
Image
Image

Forskjellen mellom virtuell og abstrakt

Image
Image
Image
Image

Forskjellen mellom abstrakt klasse og grensesnitt

Image
Image
Image
Image

forskjellen mellom verktøy og utvidelser

Image
Image
Image
Image

Forskjellen mellom graf og tre

Filt under: Programmering tagget med: ABC, abstrakt, Abstrakt grunnklasser, Abstrakt klasse, Abstrakte klasser, Abstrakt nøkkelord, Abstrakte metoder, konkret klasse, Utvider nøkkelord, Arv, Arv klasse, arvet klasse, Java, multippel arv, objektorienterte konsepter, vanlig klasse, superklasse

Bilde
Bilde

Om forfatteren: Indika

Indika, BSc. Eng, MSECE Computer Engineering, PhD. Datavitenskap, er assisterende professor og har forskningsinteresser innen områdene bioinformatikk, beregningsbiologi og biomedisinsk naturlig språkbehandling.

Kommentarer

  1. Bilde
    Bilde

    Jason sier

    30. august 2017 kl. 13.25

    Takk for at du forklarte forskjellen. Alle spørsmålene mine er løst av dette.

    Svar

  2. Bilde
    Bilde

    Aus sier

    10. mai 2019 kl. 15.04

    beste svar på nettet, lærer forklarer ikke dritt og gir ingen mening, monotone mf. Slik forklarer du konsepter.

    Svar

Legg igjen et svar Avbryt svar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket

Kommentar

Navn

E-post

Nettsted

Be om artikkel
Be om artikkel
Be om artikkel
Be om artikkel

Utvalgte innlegg

Forskjellen mellom koronavirus og forkjølelsessymptomer
Forskjellen mellom koronavirus og forkjølelsessymptomer

Forskjellen mellom koronavirus og forkjølelsessymptomer

Forskjellen mellom koronavirus og SARS
Forskjellen mellom koronavirus og SARS

Forskjellen mellom koronavirus og SARS

Forskjellen mellom koronavirus og influensa
Forskjellen mellom koronavirus og influensa

Forskjellen mellom koronavirus og influensa

Forskjellen mellom Coronavirus og Covid 19
Forskjellen mellom Coronavirus og Covid 19

Forskjellen mellom Coronavirus og Covid 19

Du kan like

Forskjellen mellom Siberian Husky og Malamute

Forskjellen mellom Calculus AB og BC

Anbefalt: