Verskil tussen Abstrakte Klas en Erfenis

INHOUDSOPGAWE:

Verskil tussen Abstrakte Klas en Erfenis
Verskil tussen Abstrakte Klas en Erfenis

Video: Verskil tussen Abstrakte Klas en Erfenis

Video: Verskil tussen Abstrakte Klas en Erfenis
Video: Getting started with Containers | #CloudNativeNinja PT1 2024, Julie
Anonim

Abstract Class vs Inheritance

Abstract class en Inheritance is twee belangrike objekgeoriënteerde konsepte wat in baie objekgeoriënteerde programmeertale soos Java voorkom. Abstrakte klas kan beskou word as 'n abstrakte weergawe van 'n gewone (konkrete) klas, terwyl Inheritance nuwe klasse toelaat om ander klasse uit te brei. Abstrakte klas is 'n klas wat nie geïnisialiseer kan word nie, maar kan uitgebrei word. Dus, Abstrakte klasse is slegs sinvol om te hê as die programmeertaal oorerwing ondersteun. In Java word Abstrakte klasse verklaar deur gebruik te maak van Abstrakte sleutelwoord, terwyl Extends sleutelwoord gebruik word om van 'n (super) klas te erf.

Wat is Abstrakte Klas?

Tipies kan Abstrakte klasse, ook bekend as Abstrakte Basisklasse (ABC), nie geïnstansieer word nie ('n instansie van daardie klas kan nie geskep word nie). Dus, Abstrakte klasse is slegs betekenisvol om te hê as die programmeertaal oorerwing ondersteun (vermoë om subklasse te skep deur 'n klas uit te brei). Abstrakte klasse verteenwoordig gewoonlik 'n abstrakte konsep of entiteit met gedeeltelike of geen implementering. Daarom tree abstrakte klasse op as ouerklasse waaruit kinderklasse afgelei word sodat die kinderklas die onvolledige kenmerke van die ouerklas sal deel en funksionaliteit bygevoeg kan word om dit te voltooi.

Abstrakte klasse kan abstrakte metodes bevat. Subklasse wat 'n abstrakte klas uitbrei, kan hierdie (oorgeërfde) abstrakte metodes implementeer. As die kinderklas al sulke Abstrakte metodes implementeer, is dit 'n konkrete klas. Maar as dit nie die geval is nie, word die kinderklas ook 'n Abstrakte klas. Wat dit alles beteken, is dat wanneer die programmeerder 'n klas as 'n opsomming nomineer, sy sê dat die klas onvolledig sal wees en dat dit elemente sal hê wat deur die oorerflike subklasse voltooi moet word. Dit is 'n goeie manier om 'n kontrak tussen twee programmeerders te skep, wat take in sagteware-ontwikkeling vergemaklik. Die programmeerder, wat kode skryf om te erf, moet die metodedefinisies presies volg (maar kan natuurlik haar eie implementering hê).

Wat is erfenis?

Inheritance is 'n objekgeoriënteerde konsep wat nuwe klasse toelaat om ander klasse uit te brei. Extends-sleutelwoord word gebruik om die konsep van oorerwing in Java-programmeertaal te implementeer. Oorerwing verskaf in wese kode hergebruik deur die uitbreiding van eienskappe en gedrag van 'n bestaande klas deur 'n nuut gedefinieerde klas toe te laat. Wanneer 'n nuwe subklas (of afgeleide klas) 'n superklas (of ouerklas) uitbrei, sal daardie subklas alle eienskappe en metodes van die superklas erf. Die subklas kan opsioneel die gedrag ignoreer (verskaf nuwe of uitgebreide funksionaliteit aan metodes) wat van die ouerklas geërf is. Tipies kan 'n subklas nie veelvuldige superklasse uitbrei nie (bv. in Java). Daarom kan u nie verlengings vir meervoudige erfenis gebruik nie. Om veelvuldige oorerwing te hê, moet jy koppelvlakke gebruik.

Wat is die verskil tussen Abstrakte Klas en Erfenis?

Abstrakte klasse verteenwoordig gewoonlik 'n abstrakte konsep of 'n entiteit met gedeeltelike of geen implementering. Oorerwing laat nuwe klasse toe om ander klasse uit te brei. Omdat Abstrakte klasse nie geïnstansieer kan word nie, moet jy die konsep van oorerwing gebruik om van Abstrakte klasse gebruik te maak. Andersins het 'n Abstrakte klas geen nut nie. Abstrakte klasse kan Abstrakte metodes bevat en wanneer die klas uitgebrei word, word alle metodes (Abstrakt en konkreet) geërf. Die geërfde klas kan enige of al die metodes implementeer. As al die abstrakte metodes nie geïmplementeer word nie, word daardie klas ook 'n abstrakte klas. 'n Klas kan nie van meer as een Abstrakte klas erf nie (dit is nie 'n kwaliteit van Abstrakte klasse per se nie, maar eerder 'n beperking van oorerwing).

Verwante plasings:

Image
Image
Image
Image

Verskil tussen abstrakte klas en betonklas

Image
Image
Image
Image

Verskil tussen virtueel en abstrak

Image
Image
Image
Image

Verskil tussen abstrakte klas en koppelvlak

Image
Image
Image
Image

Verskil tussen Implemente en Uitbreidings

Image
Image
Image
Image

Verskil tussen grafiek en boom

Geliasseer onder: Programmering gemerk met: ABC, abstrak, Abstrakte Basisklasse, Abstrakte klas, Abstrakte klasse, Abstrakte sleutelwoord, Abstrakte metodes, konkrete klas, Brei sleutelwoord uit, Erfenis, Erfenisklas, geërfde klas, Java, meervoudige oorerwing, objekgeoriënteerde konsepte, gewone klas, superklas

Beeld
Beeld

Oor die skrywer: Indika

Indika, BSc. Ing, MSECE Rekenaaringenieurswese, PhD. Rekenaarwetenskap, is 'n Assistent Professor en het navorsingsbelangstellings in die gebiede van Bioinformatika, Rekenaarbiologie en Biomediese Natuurlike Taalverwerking.

Kommentaar

  1. Beeld
    Beeld

    Jason sê

    30 Augustus 2017 om 13:25

    Dankie dat jy die verskil verduidelik het. Al my vrae is hierdeur opgelos.

    Antwoord

  2. Beeld
    Beeld

    Aus sê

    10 Mei 2019 om 15:04

    beste antwoord op die web, Juffrou verduidelik nie kak nie en maak geen sin nie, monotoon mf. Dit is hoe jy konsepte verduidelik.

    Antwoord

Laat 'n antwoord Kanselleer antwoord

Jou e-posadres sal nie gepubliseer word nie. Vereiste velde is gemerk

Kommentaar

Naam

E-pos

Webwerf

Versoek artikel
Versoek artikel
Versoek artikel
Versoek artikel

Uitstalplasings

Verskil tussen koronavirus en verkouesimptome
Verskil tussen koronavirus en verkouesimptome

Verskil tussen koronavirus en verkouesimptome

Verskil tussen Coronavirus en SARS
Verskil tussen Coronavirus en SARS

Verskil tussen Coronavirus en SARS

Verskil tussen koronavirus en griep
Verskil tussen koronavirus en griep

Verskil tussen koronavirus en griep

Verskil tussen Coronavirus en Covid 19
Verskil tussen Coronavirus en Covid 19

Verskil tussen Coronavirus en Covid 19

Jy mag dalk hou

Verskil tussen Siberian Husky en Malamute

Verskil tussen Calculus AB en BC

Aanbeveel: