Erinevus abstraktse klassi ja pärimise vahel

Sisukord:

Erinevus abstraktse klassi ja pärimise vahel
Erinevus abstraktse klassi ja pärimise vahel
Anonim

Abstraktne klass vs pärand

Abstraktne klass ja pärimine on kaks olulist objektorienteeritud mõistet, mida leidub paljudes objektorienteeritud programmeerimiskeeltes, nagu Java. Abstraktset klassi võib pidada tavalise (konkreetse) klassi abstraktseks versiooniks, samas kui Inheritance võimaldab uutel klassidel teisi klasse laiendada. Abstraktne klass on klass, mida ei saa initsialiseerida, kuid mida saab laiendada. Seega on abstraktsed klassid mõttekad ainult siis, kui programmeerimiskeel toetab pärimist. Javas deklareeritakse abstraktsed klassid märksõnaga Abstract, samas kui märksõna Extends kasutatakse (super)klassist pärimiseks.

Mis on abstraktne klass?

Tavaliselt ei saa abstraktseid klasse, tuntud ka kui Abstract Base Classes (ABC), instantseerida (selle klassi eksemplari ei saa luua). Seega on abstraktsed klassid mõttekad ainult siis, kui programmeerimiskeel toetab pärimist (võime luua alamklasse klassi laiendamisest). Abstraktsed klassid esindavad tavaliselt abstraktset kontseptsiooni või olemit, mille rakendamine on osaliselt või üldse mitte. Seetõttu toimivad abstraktsed klassid vanemklassidena, millest alamklassid tuletatakse, nii et alamklassid jagavad põhiklassi mittetäielikke funktsioone ja nende täiendamiseks saab lisada funktsioone.

Abstraktsed klassid võivad sisaldada abstraktseid meetodeid. Abstraktset klassi laiendavad alamklassid võivad rakendada neid (päritud) abstraktseid meetodeid. Kui alamklass rakendab kõiki selliseid abstraktseid meetodeid, on see konkreetne klass. Kui aga seda ei juhtu, muutub ka lasteklass abstraktseks klassiks. See kõik tähendab, et kui programmeerija nimetab klassi abstraktseks, ütleb ta, et klass on mittetäielik ja sellel on elemente, mida pärivad alamklassid peavad täitma. See on hea viis kahe programmeerija vahel lepingu sõlmimiseks, mis lihtsustab tarkvaraarenduse ülesandeid. Programmeerija, kes kirjutab pärimiseks koodi, peab täpselt järgima meetodi määratlusi (kuid loomulikult võib tal olla ka oma rakendus).

Mis on pärimine?

Pärimine on objektorienteeritud kontseptsioon, mis võimaldab uutel klassidel teisi klasse laiendada. Märksõna Extends kasutatakse pärimise kontseptsiooni juurutamiseks Java programmeerimiskeeles. Pärimine pakub sisuliselt koodi taaskasutamist, võimaldades laiendada olemasoleva klassi omadusi ja käitumist äsja määratletud klassi võrra. Kui uus alamklass (või tuletatud klass) laiendab ülemklassi (või ülemklassi), pärib see alamklass kõik superklassi atribuudid ja meetodid. Alamklass võib valikuliselt alistada vanemklassilt päritud käitumise (pakkuda meetoditele uut või laiendatud funktsionaalsust). Tavaliselt ei saa alamklass laiendada mitut superklassi (nt Javas). Seetõttu ei saa te laiendusi kasutada mitme pärimise korral. Mitme pärandi saamiseks peate kasutama liideseid.

Mis vahe on abstraktsel klassil ja pärimisel?

Abstraktsed klassid esindavad tavaliselt abstraktset mõistet või olemit, mille rakendamine on osaliselt või olematu. Pärimine võimaldab uutel klassidel teisi klasse laiendada. Kuna abstraktseid klasse ei saa instantseerida, peate abstraktsete klasside kasutamiseks kasutama pärimise mõistet. Vastasel juhul pole abstraktsest klassist kasu. Abstraktsed klassid võivad sisaldada abstraktseid meetodeid ja klassi laiendamisel päritakse kõik meetodid (abstraktsed ja konkreetsed). Päritud klass võib rakendada mis tahes või kõiki meetodeid. Kui kõiki abstraktseid meetodeid ei rakendata, saab sellest klassist ka abstraktne klass. Klass ei saa pärida rohkem kui ühest abstraktsest klassist (see ei ole abstraktsete klasside omadus iseenesest, vaid pigem pärimise piirang).

Seotud postitused:

Image
Image
Image
Image

Abstraktse klassi ja konkreetse klassi erinevus

Image
Image
Image
Image

Erinevus virtuaalse ja abstraktse vahel

Image
Image
Image
Image

Erinevus abstraktse klassi ja liidese vahel

Image
Image
Image
Image

Erinevus rakenduste ja laienduste vahel

Image
Image
Image
Image

Graafiku ja puu erinevus

Filed Under: Programmeerimine Sildistatud: ABC, abstraktne, abstraktsed põhiklassid, abstraktsed klassid, abstraktsed klassid, abstraktne märksõna, abstraktsed meetodid, konkreetne klass, laiendab märksõna, pärand, pärimisklass, päritud klass, Java, mitu pärimist, objektorienteeritud mõisted, tavaline klass, superklass

Pilt
Pilt

Autori kohta: Indika

Indika, BSc. Eng, MSECE arvutitehnika, PhD. Arvutiteadus, on abiprofessor ja tal on uurimishuvid bioinformaatika, arvutusbioloogia ja biomeditsiinilise loomuliku keele töötlemise valdkondades.

Comments

  1. Pilt
    Pilt

    Jason ütleb

    30. august 2017, kell 13.25

    Täname erinevuse selgitamise eest. Kõik minu küsimused on sellega lahendatud.

    Vasta

  2. Pilt
    Pilt

    Aus ütleb

    10. mai 2019, kell 15.04

    parim vastus veebis, Õpetaja ei seleta jama ja pole mõtet, monotooniline mf. Nii selgitate mõisteid.

    Vasta

Jäta vastus Tühista vastus

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgistatud

Kommenteeri

Nimi

E-post

Veebisait

Taotle artiklit
Taotle artiklit
Taotle artiklit
Taotle artiklit

Esiletõstetud postitused

Erinevus koroonaviiruse ja külma sümptomite vahel
Erinevus koroonaviiruse ja külma sümptomite vahel

Erinevus koroonaviiruse ja külmetuse sümptomite vahel

Erinevus koroonaviiruse ja SARSi vahel
Erinevus koroonaviiruse ja SARSi vahel

Erinevus koroonaviiruse ja SARSi vahel

Erinevus koroonaviiruse ja gripi vahel
Erinevus koroonaviiruse ja gripi vahel

Erinevus koroonaviiruse ja gripi vahel

Erinevus koroonaviiruse ja Covid 19 vahel
Erinevus koroonaviiruse ja Covid 19 vahel

Erinevus koroonaviiruse ja Covid 19 vahel

Sulle võib meeldida

Siberi husky ja malamuudi erinevus

Calculus AB ja BC erinevus

Topeltmajuri ja topeltkraadi erinevus

Erinevus heledate ja tumedate särkide ülekandepaberi vahel

vahel

Soovitan: