Abstraktse klassi ja liidese erinevus

programmeerimisraamatAbstraktne klass vs liides

Abstraktne klass (või tüüp) on programmi poolt deklareeritud nominatiivse tüübi süsteemi tüüp. Kuigi nimi viitab sellele, võib abstraktne klass abstraktseid meetodeid või omadusi sisaldada või mitte. Eristusklass viitab erinevatele keelekonstruktsioonidele, mida võib kasutada abstraktsete tüüpide rakendamiseks. Abstraktseid klasse saab iseloomustada disainiprobleem, mis sobib kõige paremini objektile orienteeritud programmeerimise ja nende lõpetamata olemusega.



Liides on abstraktne tüüp, mille klassid peavad rakendama liidese täpsustamiseks (üldiselt). Liidesed võivad sisaldada ainult meetodi allkirju ja konstantseid deklaratsioone (nii staatilisi kui ka lõplikke), mitte kunagi meetodi definitsioone. Liidesed simuleerivad mitut pärandit ja neid kasutatakse erinevat tüüpi klasside vahel jagatud sarnasuste kodeerimiseks.



Abstrakte tüüpe on võimalik luua, tähistada või simuleerida mitmel erineval viisil. Programmeerija saab tähistada abstraktseid tüüpe, kasutades selgesõnaliselt märksõna abstraktne, lisades klassi definitsiooni ühe või mitu meetodit, pärides teiselt abstraktselt tüübilt, määramata klassi definitsiooni lõpuleviimiseks vajalikke puuduvaid funktsioone, või saates konkreetse meetodi objektile orienteeritud programmeerimiskeel, mida nimetatakse selliseks, mis meetodit otseselt ei rakenda.

Liideseid saab määratleda abstraktsete meetodite abil. Klassid võidakse rakendada ka liidestes. Kui klass kasutab liidest ja ei rakenda kõiki oma meetodeid, tuleb kasutada tähistaja abstraktset, vastasel juhul pole see tähistaja vajalik (kuna kõik liidesed on oma olemuselt abstraktsed). Klassid võivad rakendada ka mitut liidest.



Kui liideseid kasutatakse üldiste liideste määramiseks, saab protokolli määratlemiseks ja jõustamiseks kasutada abstraktseid tüüpe (mis on toimingute kogum, mida kõik soovitud protokolli rakendavad objektid peavad toetama). Abstrakte tüüpe ei esine keeltes ilma alamtüübita. Kuna sellised alamtüübid on sunnitud rakendama kõiki vajalikke funktsioone, tagades programmi täitmise õigsuse. Abstraktsete tüüpide loomiseks on mitu võimalust: täielikud abstraktsed baasklassid on klassid, mis on kas selgesõnaliselt abstraktseks tunnistatud või sisaldavad abstraktseid (rakendamata) meetodeid; Ühised Lisp-objektisüsteemid hõlmavad segu, mis põhineb Flavoursi süsteemil; Java , muidugi; ja funktsioonid, mis toimib Smalltalki laiendina.

Kokkuvõte:
1. Abstraktsed klassid (või tüübid) deklareerivad programme; liidesed on abstraktsed tüübid, mida kõik klassid peavad oma liidese täpsustamiseks rakendama.
2. Abstrakte tüüpe saab tähistada sõnaselgelt märksõna abil; liidesed on oma olemuselt abstraktsed, seetõttu ei pea neid märksõna abil üldse tähistama (kui mõni konkreetne klass ei kasuta liidest, kuid ei rakenda kõiki selle meetodeid).

Lemmik Postitused

Veebisaidi ja veebirakenduse erinevus

Veebisait vs veebirakendus Interneti tulekuga leiutati uued terminid, mida kasutatakse ainult viidates asjadele, mida saate teha või saada



Erinevus rütmi ja peakitarri vahel

Rhythm vs Lead Guitar Guitar muusika annab enamiku lugude jaoks väga tugeva aluse, mistõttu teavad enamik, kui mitte kõik muusikud ja laulutegijad seda mängida.

POWS: naasmine ühiskonda, mida nad ei tundnud

Valu jätkus paljude sõjavangide jaoks isegi pärast nende koju tulekut.

Kasvu ja arengu erinevus

Majanduskasv vs areng Mõisteid Majanduskasv ja areng kasutatakse igas eluvaldkonnas. Terminite kasutamisel võib esineda teatud segadust, nagu need sageli on

Erinevus alalis- ja vahelduvvoolu vahel

Alalisvool vs vahelduvvool Kõikide meie seadmete ja seadmete toitmiseks vajame voolu. Selle genereerivad elektrijaamad ja need tarnitakse meile

Erinevus VLAN-i ja alamvõrgu vahel

VLAN vs alamvõrk Alamvõrgud ja VLAN-ide juurutamine pakuvad administraatoritele paindlikkust, kui nad püüavad välja pakkuda võrke keskmise või väga suure skaalaga. Sisse