RekenaarsSagteware

Abstrakte klas en metode: beskrywing, eienskappe en kenmerke. Wat is die verskil tussen die abstrakte klas en die koppelvlak

Enigeen wat ten minste 'n minimale kennis van programmering het, het gewonder hoekom daar abstrakte basisse is. Wat is hul doel? Hoe om 'n abstrakte klas te skep? Wat is die voordele wat hulle in die praktyk gee? Hoekom is dit nodig vir programmering en watter eienskappe van die implementering daarvan moet in ag geneem word?

Abstrakte klasse

In programmering word dus 'n eenheid kodekode genoem, op grond waarvan voorwerpe nie geskep kan word nie. Daar moet kennis geneem word dat die erfgename van hierdie klas nie abstrak mag wees nie. Daarom is die skep van voorwerpe op hul grondslag heel moontlik. As ons 'n voorbeeld van Java beskou, konstrueer ons so 'n model: ons kan konstrukteurs in klas A beskryf. Maar ons kan dit nie gebruik nie. Die uitweg van hierdie situasie is om 'n veranderlike as 'n verwysing te verklaar. En dit is nodig om duidelik te maak dat dit dui op 'n voorwerp van klas A. Maar hoe kan dit gedoen word? Die cast sal ons hierin help. Daar moet kennis geneem word dat die ouer klas altyd as universeler beskou word as die kind. In baie programmeertale word die cast outomaties gebruik. Maar as daar geen vertroue is in die beskikbaarheid van so 'n meganisme nie, moet jy eksplisiet 'n verwysing na die voorwerp spesifiseer.

Abstrakte Metodes

Wat is hulle? Abstrakte metodes is dié wat nie in die klas onder oorweging is nie. Dus, nadat die hakies (waarin die argumente wat in hulle gebruik word) gelys word, is dit nie-opening krullerig (waarna die blokkie van die metode beskrywing geplaas word), maar slegs 'n semikolon. Dus, in hierdie geval is daar geen inligting oor wat hy doen nie. Hier kan jy die vraag vra: "Hoekom is die metode sonder implementering?" Dit kan immers nie gebruik word nie! Dit is natuurlik nie moontlik in die klas waar dit beskryf is nie. Maar as ons hierdie situasie vanuit die gesigspunt beskou, dan kan dit genoem word. En dit sal funksioneer volgens die spesifieke beskrywing wat in hierdie klas beskikbaar is.

Kenmerke van abstrakte metodes

Daar is beperkinge in hul gebruik. Oorweeg dit in die voorbeeld van die Java-programmeertaal. Daar is so 'n vereiste: as daar ten minste een sulke metode in die klas is, moet dit noodwendig abstrak wees. En in watter gevalle is dit gepas om sulke konstruksies te gebruik? Kom ons kyk na hierdie in die geval van troeteldierklasse. Om mee te begin moet verstaan word dat daar geen klank is wat hulle almal publiseer nie. Daarom, in die algemeenste klas, word die implementering van die klankmetode nie gespesifiseer nie. Maar vir hom word 'n liggaam geskep, wat deur blokke geskei word. En al in die toekoms, wanneer 'n honde-, kat- of hamsterklas geskep word, word daar 'n aparte metode voorgeskryf, waarin al die funksies geopenbaar sal word.

koppelvlak

In die programmering is baie gereedskap geskep wie se doel is om 'n persoon te help om 'n produk van goeie gehalte te maak. En in die raamwerk van die onderwerp wat oorweeg word, moet hierdie aspek aandag geniet sodat almal die verskil tussen die abstrakte klas en die koppelvlak ken. Dus, die eienaardigheid van laasgenoemde is dat dit nie eiendomme kan hê nie, en metodes het geen liggame nie. As jy die verskil tussen die abstrakte klas en die koppelvlak ondersoek, moet jy een funksie sien. So, die eerste een is geërf, terwyl die tweede een gerealiseer word. Vir 'n onervare persoon lyk dit dalk onbeduidend. Maar die feit is dat slegs een klas geërf kan word, en jy kan soveel as wat jy wil implementeer. Dit is hoe die koppelvlak van die abstrakte klas verskil . Java het ander eienskappe wat dit slegs abstrakte openbare metodes en statiese konstantes kan beskryf. Maar koppelvlakke kan ook geërf word. In hierdie geval is dit nodig om aan te dui dat die gebruiksoperateurs publiek is met die publiek.

Veelvuldige koppelvlak erfenis

Hierdie funksie is nie beskikbaar vir klasse in baie programmeertale nie (byvoorbeeld in die Java wat ons oorweeg). Dit is as gevolg van 'n aantal probleme. Dui as sodanig die dubbelsinnigheid aan wat ontstaan wanneer jy erf. Dit was die rede vir die bekendstelling van verskeie erfenis koppelvlakke. Hierdeur word die bestaande probleme gedeeltelik opgelos, maar nie almal nie. Dus, danksy die beginsels van inkapseling en polimorfisme, kan interfaces suksesvol in verskillende klasse geïmplementeer word deur verskillende metodes (hoewel hulle dieselfde naam sal hê). Maar moenie vergeet van die bestaande probleme nie. Dus, wanneer u met verskeie koppelvlakke werk, moet u altyd spesifiseer wat ons bedoel. Daar sal ook probleme wees wanneer jy probeer om te werk met twee metodes met dieselfde naam, in welke geval hulle nie gebruik kan word nie. Vir sulke gevalle is dit dus nodig om te sorg vir die beskikbaarheid van 'n gemeenskaplike implementering.

Abstract data

Hierdie konsep is die sleutel tot programmering. In hierdie geval word abstraksie verstaan as 'n onafhanklike oorweging en skeiding van die koppelvlak en die implementering daarvan. Kom ons kyk na 'n voorbeeld. Ons het 'n TV, wat 'n voorwerp of module is. Dit het 'n koppelvlak. As sodanig is daar kontroles daarvoor, sowel as klank- en beeldweergawe. Hoe meer gevorderde die koppelvlak gebruik word, hoe makliker is die TV in gebruik. Ons kan programme skuif deur op enige knoppies te klik. In hierdie geval hoef jy nie te dink aan die fisiese prosesse in die TV nie. Hulle word versorg deur spesialiste wat die toestel versamel. Ons is net geïnteresseerd in eiendomme as gebruikers. Terugkeer na programmering, kan ons sê dat hulle deur hierdie analogie is die koppelvlak en implementering. Ook, as 'n persoon selfvertroue in sy kennis het, kan hy die dekking van ons hipotetiese TV afneem en verbeter. Alhoewel dit kan lei tot plaaslike suksesse, is die eindresultaat in die meeste gevalle negatief. Daarom verbied programmering toegang en verberg interne komponente vir abstrakte data. Die beginsel van hierdie meganisme bied maniere om opsetlike of toevallige veranderinge in interne komponente te voorkom. En as hulle praat oor abstrakte datatipes, beteken dit hul totale met 'n groot aantal operasies wat op hulle uitgevoer kan word.

voorwerpe

Ons het reeds die abstrakte klas en koppelvlak in die algemeen en in die algemeen ondersoek. Kom ons gee ons 'n bietjie detail. Eerstens, ons sal aandag gee aan die voorwerpe. Deur hulle word in die algemene geval verstaan 'n deel van die omliggende werklikheid wat in ruimte en tyd bestaan. Maar dit is taamlik moeilik om voorwerpe te formeel omskryf in die raamwerk van programmering (vanuit filosofiese en teoretiese oogpunt). Daarom word dit gedoen as gevolg van sy eienskappe. As voorbeeld kan die volgende aangehaal word: 'n voorwerp kan uniek geïdentifiseer word (het 'n unieke naam), dit is in 'n sekere toestand en gebruik 'n sekere gedragsmodel.

erfenis

Aangesien die programmering gebaseer is op die opbou van 'n hiërargiese verhoudingsboom tussen objekte, word die vraag gestel dat die eienskappe van die ouerkode biblioteke na die onderliggende tipes oorgedra moet word. Erfenis word verstaan as 'n verhouding wanneer 'n mens die gedrag en struktuur van iets anders herhaal. In die gewone lewe kan dit oral gevind word. Dit is ook oorgedra na programmering met betrekking tot abstrakte elemente. As vergelyking kan ons die feit noem dat daar nie so 'n organisme as 'n voël is nie. Dit is 'n abstrakte naam. As 'n spesifieke monster bring jy 'n seemeeu, 'n nagegaal of 'n mossie. As gevolg van erfenis kan ons klasbiblioteke gebruik, sowel as om dit vir 'n spesifieke program te ontwikkel. So 'n instrument laat ons toe om nuwe voorwerpe te skep, gelyktydig byvoeg of verander van die eienskappe van 'n reeds geskep. Die erfgenaam kry al die metodes en velde van sy voorouer en verkry, indien nodig, sy eie eienskappe. As gevolg van die feit dat daar abstrakte elemente en die beginsel van erfenis is, is daar genoeg geleenthede vir verandering in die raamwerk van objekgeoriënteerde programmering. Daarbenewens kan jy die oplossing van die take buigsaam benader. Wanneer u erf, word data en funksies aan die nuwe klas oorgedra.

polimorfisme

Dit is nodig om dieselfde funksies toe te pas om verskillende tipes take op te los. In hierdie geval is daar voorsiening vir die moontlikheid om verskillende aksies uit te voer, waarvan die inhoud afhang van die tipe voorwerp waarmee die werk uitgevoer word. Polimorfisme word verstaan as die eienskap van elemente wat een gemeenskaplike ouer het, op verskillende maniere soortgelyke probleme in semantiese betekenis verrig. Ons teken 'n analogie met diere. Daar is so 'n aksie - om te hardloop. Ons verstaan almal hoe dit gebeur. Maar met verskillende diere (leeu, olifant, sjimpansee, krokodil, skilpad) word hierdie aksie anders uitgevoer. In hierdie geval is die ontwikkelaar verantwoordelik vir hul beweging, wat, indien nodig, 'n spesifieke subprogram vir 'n spesifieke geval kan veroorsaak, 'n algoritme kan ontwikkel en dit suksesvol kan implementeer. Dit word gedoen met behulp van 'n stel metodes. In hierdie geval, in elke afsonderlike klas, dui die programmeerder aan watter voorwerp watter eienskappe inherent is. As jy iets verander in die nageslag, kan jy sekere, noodsaaklike aksies in hierdie geval bereik. So 'n invloed word objek polimorfisme genoem. Oor die algemeen is 'n abstrakte klas 'n uiters nuttige programmeringsinstrument.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 af.unansea.com. Theme powered by WordPress.