Skillnaden mellan abstrakt klass och arv

Innehållsförteckning:

Skillnaden mellan abstrakt klass och arv
Skillnaden mellan abstrakt klass och arv

Video: Skillnaden mellan abstrakt klass och arv

Video: Skillnaden mellan abstrakt klass och arv
Video: Två vägar samma mål: Systemutvecklare 2024, December
Anonim

Abstrakt klass vs arv

Abstract class och Inheritance är två viktiga objektorienterade koncept som finns i många objektorienterade programmeringsspråk som Java. Abstrakt klass kan betraktas som en abstrakt version av en vanlig (konkret) klass, medan Arv tillåter nya klasser att utöka andra klasser. Abstrakt klass är en klass som inte kan initieras men som kan utökas. Så abstrakta klasser är bara meningsfulla att ha om programmeringsspråket stöder arv. I Java deklareras abstrakta klasser med abstrakt nyckelord, medan Extends nyckelord används för att ärva från en (super)klass.

Vad är abstrakt klass?

Vanligtvis kan abstrakta klasser, även kända som Abstrakta basklasser (ABC), inte instansieras (en instans av den klassen kan inte skapas). Så abstrakta klasser är bara meningsfulla att ha om programmeringsspråket stöder arv (möjlighet att skapa underklasser genom att utöka en klass). Abstrakta klasser representerar vanligtvis ett abstrakt koncept eller entitet med partiell eller ingen implementering. Därför fungerar abstrakta klasser som överordnade klasser från vilka underordnade klasser härleds så att den underordnade klassen kommer att dela de ofullständiga funktionerna i föräldraklassen och funktionalitet kan läggas till för att slutföra dem.

Abstrakta klasser kan innehålla abstrakta metoder. Underklasser som utökar en abstrakt klass kan implementera dessa (ärvda) abstrakta metoder. Om barnklassen implementerar alla sådana abstrakta metoder är det en konkret klass. Men om det inte gör det blir barnklassen också en abstrakt klass. Vad allt detta betyder är att när programmeraren nominerar en klass som en abstrakt, säger hon att klassen kommer att vara ofullständig och den kommer att ha element som måste kompletteras av de ärvda underklasserna. Detta är ett trevligt sätt att skapa ett kontrakt mellan två programmerare, vilket förenklar uppgifter inom mjukvaruutveckling. Programmeraren, som skriver kod för att ärva, måste följa metoddefinitionerna exakt (men kan naturligtvis ha sin egen implementering).

Vad är arv?

Arv är ett objektorienterat koncept som tillåter nya klasser att utöka andra klasser. Extends nyckelord används för att implementera begreppet arv i programmeringsspråket Java. Arv ger i huvudsak kodåteranvändning genom att tillåta utvidgning av egenskaper och beteende hos en befintlig klass med en nydefinierad klass. När en ny underklass (eller härledd klass) utökar en superklass (eller överordnad klass) kommer den underklassen att ärva superklassens alla attribut och metoder. Underklassen kan valfritt åsidosätta beteendet (tillhandahålla ny eller utökad funktionalitet till metoder) som ärvts från den överordnade klassen. Vanligtvis kan en underklass inte utöka flera superklasser (t.ex. i Java). Därför kan du inte använda förlängningar för multipelt arv. För att få flera arv måste du använda gränssnitt.

Vad är skillnaden mellan abstrakt klass och arv?

Abstrakta klasser representerar vanligtvis ett abstrakt koncept eller en enhet med partiell eller ingen implementering. Arv tillåter nya klasser att utöka andra klasser. Eftersom abstrakta klasser inte kan instansieras, måste du använda begreppet arv för att använda abstrakta klasser. Annars har en abstrakt klass ingen användning. Abstrakta klasser kan innehålla abstrakta metoder och när klassen utökas ärvs alla metoder (abstrakta och konkreta). Den ärvda klassen kan implementera vilken som helst eller alla metoder. Om alla abstraktmetoder inte är implementerade, blir den klassen också en abstrakt klass. En klass kan inte ärva från mer än en abstrakt klass (detta är inte en egenskap hos abstrakta klasser i sig, utan snarare en begränsning av arv).

Relaterade inlägg:

Image
Image
Image
Image

Skillnaden mellan abstrakt klass och konkret klass

Image
Image
Image
Image

Skillnaden mellan virtuellt och abstrakt

Image
Image
Image
Image

Skillnaden mellan abstrakt klass och gränssnitt

Image
Image
Image
Image

Skillnaden mellan redskap och förlängningar

Image
Image
Image
Image

Skillnaden mellan graf och träd

Filerad under: Programmering Taggad med: ABC, abstrakt, Abstrakt basklass, Abstrakt klass, Abstrakt klass, Abstrakt nyckelord, Abstrakta metoder, konkret klass, Utökar nyckelord, Arv, Arvsklass, ärvd klass, Java, multipelt arv, objektorienterade koncept, vanlig klass, superklass

Bild
Bild

Om författaren: Indika

Indika, BSc. Eng, MSECE Computer Engineering, PhD. Datavetenskap, är biträdande professor och har forskningsintressen inom områdena bioinformatik, beräkningsbiologi och biomedicinsk naturlig språkbehandling.

Kommentarer

  1. Bild
    Bild

    Jason säger

    30 augusti 2017 kl. 13.25

    Tack för att du förklarar skillnaden. Alla mina frågor har lösts av detta.

    Svara

  2. Bild
    Bild

    Aus säger

    10 maj 2019 kl. 15.04

    bästa svaret på webben, läraren förklarar inte skit och är meningslöst, monoton mf. Så här förklarar du begrepp.

    Svara

Lämna ett svar Avbryt svar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med

Kommentar

Namn

E-post

Webbplats

Begär artikel
Begär artikel
Begär artikel
Begär artikel

Utvalda inlägg

Skillnaden mellan Coronavirus och förkylningssymtom
Skillnaden mellan Coronavirus och förkylningssymtom

Skillnaden mellan Coronavirus och förkylningssymtom

Skillnaden mellan Coronavirus och SARS
Skillnaden mellan Coronavirus och SARS

Skillnaden mellan Coronavirus och SARS

Skillnaden mellan Coronavirus och influensa
Skillnaden mellan Coronavirus och influensa

Skillnaden mellan Coronavirus och influensa

Skillnaden mellan Coronavirus och Covid 19
Skillnaden mellan Coronavirus och Covid 19

Skillnaden mellan Coronavirus och Covid 19

Du kanske gillar

Skillnaden mellan Siberian Husky och Malamute

Skillnaden mellan Calculus AB och BC

Rekommenderad: