Polymorphism i gcláir réad-dhírithe

Ar mhaith leat a fháil amach cad é Polymorphism? San alt seo a leanas, tabharfaimid faisnéis mhionsonraithe duit faoin rud ar a dtugtar Polymorphism i gcláir réad-dhírithe.

polymorphism-in-object-dhírithe-ríomhchlárú-1

Polymorphism i gcláir réad-dhírithe

Cé gur cosúil gur focal é le cur síos sách casta, i ndáiríre tá baint ag an gcineál seo ábhair a bhaineann le ríomhaire le gnéithe go hiomlán bunúsach de. Nuair a fhoghlaimíonn tú Clárú oibiachtúil-dhírithe, is féidir linn teacht ar an gcur síos seo, arb é a bhrí go simplí an tuairisc ar stáit iolracha agus fhéideartha réadmhaoine aonair.

Maidir le ríomhaireacht, tá sé ar cheann de na hairíonna bunúsacha atá ag cláir atá dírithe ar réada agus is teicníc í freisin a úsáidtear le haghaidh víris ríomhaire nó péisteanna chun codanna dá gcód a mhodhnú ionas go mbeidh sé deacair iad a bhrath. Is féidir é seo a éascú Rudaí go leor agus muid ag clárú rud nuair nach dteastaíonn uainn a bheith chomh sonrach agus teastaíonn rud éigin níos feidhmiúla uainn a chuireann in oiriúint do bhealach oibre níos leithne, a laghdaíonn an obair agus a chabhraíonn linn a bheith in ann rud éigin níos dinimiciúla agus níos solúbtha a láimhseáil.

Sula léimfimid díreach go dtí an pointe, beimid ag míniú roinnt coincheapa agus ag briseadh síos sainmhínithe a fhónfaidh mar béal oscailte, ní amháin chun é a thuiscint níos fearr, ach chun a fheidhmiú, a thábhachtaí agus a úsáid agus a thuiscint i réimse na ríomhaireachta, ag cabhrú linn ár gcuid oibre a mhaolú. B’fhéidir nach bhfaighimid aon rud nua sula léimfimid go díreach chuig polymorphism in OOP, ach tá sé tábhachtach gach ceann díobh seo a leanas a choinneáil i gcuimhne d’fhonn tuiscint cheart a fháil.

Is i Simula 67, teanga ríomhchlárúcháin, a rinneadh chun insamhaltaí a dhéanamh, a tháinig coincheap an pholaiméireachais i gclárú réad-dhírithe. Chruthaigh Ole Joha Dahl agus Kristen Nygaard é seo a bhain le hionad sonraí na hIorua in Osló.

Bhí an t-ionad seo tiomnaithe d’insamhladh long, bhí go leor mearbhaill ann mar gheall ar an bpléasc mar gheall ar na difríochtaí idir ceann amháin agus an ceann eile, nuair a rinneadh na longa sin a ghrúpáil de réir a n-aicmithe faoi seach chun níos mó smachta a ghiniúint tráth na staidéar a dhéanamh is ansin a tháinig an smaoineamh seo i gcrích.

Bhí an stíl chlársceidealaithe seo sna 80idí den chuid is mó i mbeagnach gach réimse den ríomhaireacht mar gheall ar an sannadh mór a bhí aige le C ++, teanga ríomhchlárúcháin C eile. A bhuíochas leis na comhéadain úsáideora grafacha d’oibrigh ceannas an mhodha seo go han-mhaith.

Tá roinnt tréithe ag polymorphism i gclárú réad-dhírithe, a cuireadh i bhfeidhm i dteangacha éagsúla a úsáideadh ag an am sin, mar shampla: Ada, BASIC, LISP, Pascal, i measc go leor eile, cé gur fhorbair siad fadhbanna comhoiriúnachta éagsúla.

Chun míniú níos mionsonraithe a fháil ar a bhfuil Polymorphism i gcláir réad-dhírithe, tugaimid cuireadh duit féachaint ar an bhfíseán seo a leanas:

Polymorphism agus Oidhreacht

Is sa Ghréigis a bhunadh an réimír polai, mar sin ciallaíonn a thuairisc bheacht raidhse, go leor nó éagsúlacht, agus is iarmhír Ghréagach é an moirfeachas a théann isteach i bhfoirmiú focal le brí cruth, comhdhéanamh nó struchtúr coirp. Agus é seo á chur san áireamh, is féidir linn dul isteach sa mhéid a theastaíonn uainn a mhíniú sa blúire seo, is é an príomhfhocal atá againn go bunúsach ná sainiú ar éagsúlacht a chruthaíonn struchtúr coirp; I réimsí éagsúla matamaitice, tugtar léarscáileanna ar na feidhmchláir idir struchtúir mhatamaitice a chaomhnaíonn an struchtúr inmheánach.

D’fhonn é seo a dhéanamh go hiomlán soiléir, is féidir linn comparáid a dhéanamh idir polymorphism agus oidhreacht. Is é sin le rá, tugann sé seo deis dúinn na polymorphisms in ordlathais aicmithe a dhéanamh. Tá sé tábhachtach a lua freisin go dtugtar iad seo trí oidhreacht, fad is go mbaineann an oidhreacht, a d’fhéadfaimis a thuiscint mar dhíorthaigh réad, leis an aicme chéanna i gcónaí; Chun sampla a thabhairt den mhéid a míníodh, is féidir linn a rá ón bhfocal feithicil, go dtagann roinnt ranganna chun cinn, mar shampla carr, gluaisrothar, agus bus, agus é á fheiceáil ar an mbealach seo, is dhá choincheap nasctha gan amhras iad polymorphism agus oidhreacht.

Tábhacht an Chórais Chineál i bPolaiméireachas

An t-aicmiú seo a ainmniú mar chineálchóras, toisc go bhfuil díorthaigh an fhocail sin fós mar chuid díobh, ach cén fáth go bhfuil sé seo tábhachtach i polymorphism cláir atá dírithe ar réada?

D’fhéadfadh go mbeadh cur amach ag go leor de na daoine a chuir isteach ar an alt seo ar a bhfuil sé le clárú i dteangacha lagchlóscríofa, mar a bheadh ​​i gcás Javascript agus PHP, ach tá sé tábhachtach go dtuigfimid go maith cad é mar atá sé.

Sa chineál seo teanga, agus athróg á shainiú againn, ní mór dúinn i gcónaí an cineál a theastaíonn uainn a bheith san athróg sin a chur in iúl, mar shampla: int myNumber.

Ar an mbealach seo tá an fhéidearthacht againn a chur in iúl go mbeidh slánuimhir i gcónaí san athróg a bhunaítear mar "m'Uimhir"; Murab amhlaidh an cás, chuirfeadh an tiomsaitheoir teachtaireacht earráide chugainn, rud a chuirfeadh cosc ​​orainn an clár atá déanta againn a chur le chéile.

Go deimhin is féidir leis seo tarlú freisin dúinn le rudaí, más rud é i Java a shainmhínímid an rang "gnéscannán", a fhios agam an focal seo mar scannán a mhaireann níos mó ná uair an chloig, nuair a chruthú rudaí den rang "gnéscannán" ní mór dúinn a chur in iúl an athróga ina léirítear an cineál oibiachta a bheartaítear a dhéanamh. Is féidir linn é a chur in iúl mar seo:

Gné-scannán miLargo = Gné-scannán nua

Is é an t-athróg a bheadh ​​againn ná “myLargo” agus dá nochtfaí é seo, beidh tagairt againn do réad den aicme nó de chineálacha “Gné”, agus fad a mhairfidh sé ní mór go mbeadh aon réad den aicme nó den chineál céanna aige i gcónaí, tar éis é seo a rá tá sé. tábhachtach fios a bheith agat Mar sin ní féidir leat slánuimhir a stóráil san athróg, nó réad éigin eile de chineál nó d'aicme eile, nach oidhreacht é agus nach bhfuil gaol ar bith aige.

Má fhilleann muid ar shampla na bhfeithiclí agus a gcineálacha, tá sé tábhachtach a shoiléiriú má chinnimid athróg a shainiú a dhíríonn ar an réad aicme "gluaisrothar", fad a mhaireann an athróg seo, ní mór dó pointe gaolmhar nó réad oidhreachta a chur in iúl i gcónaí. . "gluaisrothar", ní chuig an aicme "gluaisteán", ná "bus"; i dteangacha lag-thriomaithe mar na cinn a luadh thuas, áfach, ní bhíonn an dolúbthacht seo ann, cé gur gné choitianta de theangacha ar nós Iávais í a bhfuil trioblóid láidir orthu. Seo sampla níos mó:

  • Car myCar = carr nua (Mazda 2 ″): Is é Mazda 2 ár n-oidhreacht ar an réad a bhaineann leis an aicme nó an cineál sin, agus lena mbaineann na pointí athraitheacha, agus dá mba mhian linn, amárach d’fhéadfadh sé pointe eile de Mo charr.

MyCar = Gluaisteán nua (Ford Focus 2.0 ″)

Is é an rud nach féidir linn a dhéanamh riamh stóráil inár tacar inathraithe mar aicme Gluaisteán, rud eile nach bhfuil aon bhaint aige leis an gcineál Gluaisteáin, mar gheall air sin bheadh ​​earráid ama tiomsaithe againn, ar eagla go dtarlódh sé, ní foláir gur shábháil sé New Car Ford Fócas 2.0 bheadh ​​New Moto Yamaha YBR roghnaithe againn.

Ba chóir a shoiléiriú nach bhfuilimid ag caint faoi polymorphism mar sin go fóill, ach táimid ag tástáil cláir i gcoitinne leis an gcóras cineáil; is é an pointe ná go gcaithfimid ár n-intinn a oscailt do na deacrachtaí a fhéadann srianadh teangacha a bhfuil neart turas orthu a thabhairt dúinn d’fhonn tuiscint níos déanaí a fháil ar an gcúis go bhfuil polymorphism tábhachtach agus mar phríomhphíosa sa pholaiméireachas i gclárú réad-dhírithe.

I dteanga ríomhaireachta clóscríofa go hiomlán nuair a léirítear feidhm, ní mór dúinn a choinneáil i gcónaí mar phointe tábhachta agus muid ag cur eolais ar na cineálacha rialacha atá le fáil. Maidir leis an bhfeidhm atá bunaithe againn, ní féidir linn rud ar bith seachas athróga nó liteartha le luachanna slánuimhir a rith mar noirm, má tharlaíonn muid sonraí a rith le cineálacha eile, má tá an tiomsaitheoir le hathrú, ní ligfidh sé dúinn an clár mar sa chás sin ní fhéadfadh sé na cineálacha a bhfuil súil leo a fháil sna paraiméadair feidhme.

moto-charr-1

Polymorphism i rudaí

Faoi dheireadh tá an chuid bainte amach againn a shonraíonn an topaic spéise seo i ndáiríre, agus is é sin an fáth go ndéanfar a eilimintí féin faoin gcóras seo a léiríonn a ranganna agus a chuspóirí, de réir mar a oibríonn teangacha atá clóscríofa go láidir, caithfidh athróg pointe a thabhairt do réad i gcónaí den chineál a thugamar le fios ag an am a bhunaíomar é.

Is rud riachtanach é sin le cuimhneamh, anois, feidhm nach ndearbhaítear a pharaiméadar d'aicme, ní ghlacfaidh sí linn ach rudaí den aicme sin a fháil; Ní ligfidh eagar a dearbhaíodh a bheith comhdhéanta d’eilimintí de chineál áirithe dúinn a bhoscaí a líonadh le rudaí den chineál sin a bhunaíomar; cuirfimid sampla eile i láthair:

Feithicil [] myVehiculos = Feithicil nua [3]

Tá an sampla seo á thabhairt againn, is athróg é atá ina eagar agus ann dearbhaímid gur réada den aicme Feithicle a bheidh in ábhar na mboscaí, i dteanga láidir tuislithe ní féidir leis ach réada d’aicme na feithicle a bheith ann, mar a bhí againn. míníodh cheana féin, ach anois feicimid polymorphism, lena bhféadfaimid beagán níos mó solúbthachta a thabhairt don chóras cineál, rud a thugann deis dúinn athróg glacadh le rudaí an "iníon" nó an rang díorthaithe freisin.

Tríd an gcóras cineáil a dhéanamh níos solúbtha, nílimid ag caint faoi ina iomláine, ach cad a bheadh ​​le déanamh aige leis na haicmithe oidhreachta atá againn inár gcórais aicme nó cineáil. Má éiríonn linn eagar a shainiú ag baint úsáide as boscaí d’aicme bhunaithe, cheadódh an tiomsaitheoir dúinn na focail “leanaí” den réad sin a bhí bunaithe againn cheana féin a chur isteach sna boscaí sin, má chinnimid go bhfaigheann feidhm réada d’aicme éigin mar pharaiméadair. , ligfidh an tiomsaitheoir dúinn agairt rudaí d'aicme a dhíorthaítear ón gceann a bhí dearbhaithe againn cheana féin a sheoladh chuige.

Ag tabhairt faoi rud éigin níos nithiúla, ní amháin go ligfidh ár n-eagar feithiclí dúinn feithiclí cineálacha a chur isteach ina athróg, ach freisin rudaí uile an linbh nó aicmí díorthaithe den aicme seo, ansin bheadh ​​rudaí den bhus, den charr agus den ghluaisrothar againn. rang nó aon pháiste atá sainithe againn, agus seo go léir a bhuíochas le polymorphism.

Polymorphism a Chur i bhFeidhm

In ainneoin an mhínithe a thugamar ar ghnéscannán, ba mhaith linn a shoiléiriú gur féidir linn freisin a bheith ina scannán faisnéise, agus i measc nithe eile; b'fhéidir go bhfuil tréithe difriúla ag an mbeirt, amanna éagsúla lucht féachana, praghsanna difriúla agus ar an gcúis seo d'fhéadfaimis a chinneadh go bhfuil ranganna leanaí nó oidhreachtaí mar “scannán” nó “clár faisnéise” ag ár rang Gnéscannán.

Má chruthaímid rang a bhunófar mar Chineama agus modh a thabharfaimid “súgradh”, feidhmeoidh sé mar pharaiméadar don rud a theastaíonn uainn a atáirgeadh in amharclann scannán, áit ar féidir linn rudaí a fháil ón rang pictiúrlainne agus ón rang faisnéise araon. , má thuigimid i gceart an córas cineáil (gan fiú dul isteach i polymorphism) beidh ár modhanna chun na cineálacha paraiméadair a fhaighimid a bhunú. Bheadh ​​​​sé cuma rud éigin mar seo:

  • Seinn (Scannán Scannán le Seinn)

Ach ina ionad sin más mian linn clár faisnéise a atáirgeadh b’éigean dúinn ár bhfoirmle a athrú.

  • Play (Documentary Documentary To Play)

Agus an bhfuil sé riachtanach dhá fhoirmle dhifriúla a chruthú? Bheadh ​​an dá mhodh chun an dá rud a atáirgeadh díreach mar an gcéanna, cén fáth bodhraigh? Ní bheadh ​​le déanamh againn ach an ghnéscannán a chur san imreoir, imirt (nó imirt) a bhualadh agus taifead a chruthú leis an líon ticéad a d’éirigh leo a dhíol. Cé nach bac é an dá mhodh a dhéanamh, ní mór dúinn a bheith ar an eolas go bhféadfadh an cás teacht chun cinn ina gcaithfimid foirmle eile a chruthú, d’fhéadfaimis an sampla a thabhairt go bhfuil scannán againn, ach an uair seo i bhformáid 3D.

Ag an bpointe seo, is féidir linn dul i muinín polymorphism, lena chabhair is féidir linn modh atáirgthe a chruthú a aithneoidh gach cineál eilimint, clár faisnéise, scannán nó aon rud eile den aicme chéanna (a bhfuil baint aige leis), a chaithfimid a chruthú sa todhchaí. Is é an rud a cheadódh na teangacha dúinn an modh atáirgthe a bhunú a thabharfadh le fios gur réad fad gné é paraiméadar an ranga a gheobhaimid, ach go mbeadh an teanga agus an tiomsaitheoir ag glacadh le haon rud a dhíorthaítear ó scannán nó clár faisnéise, bheadh ​​rud éigin mar seo fágtha againn: dráma (Gné scannáin mírToPlay).

Cibé an bhfuil muid ag iarraidh scannáin nó cláir faisnéise a chruthú chun iad a atáirgeadh, beifear in ann é seo go léir a dhéanamh ar mhodh amháin, ar atáirgeadh, a bhuí leis an bhfíric go ndéanaimid an córas níos solúbtha mar gheall ar an polymorphism i gcláir réad-dhírithe. a bheith riachtanach. Mar shampla, más mian leat scannán a atáirgeadh agus ní clár faisnéise, ní bheidh orainn an rang Pictiúrlainne a roghnú, ach is leor go bhfuil an méid a theastaíonn uainn a atáirgeadh mar chuid d’oidhreacht an phríomhghné scannáin.

Má fhillimid ar shampla na feithicle, fiú ag cuimhneamh ar úsáideacht na polymorphism agus na féidearthachtaí a thairgeann sé dúinn cothabháil na gclár ríomhaire go léir a chaithfimid a dhéanamh mura mbeadh cabhair ón gcoincheap seo againn.

Ligean le rá go bhfuil an rang Páirceála againn (i Spáinnis a bheadh ​​sé an rang a fhoghlaim conas páirceáil) ina bhfuil an fheidhm pháirceála againn. I gcarrchlós tá an fhéidearthacht againn busanna agus gluaisrothair a pháirceáil, chomh maith le gluaisteáin amháin, agus gan polymorphism bheadh ​​orainn modh a chruthú a ligeann dúinn rudaí den chineál "gluaisteán" a pháirceáil agus modh eile a ligeann dúinn rudaí a pháirceáil. cineál "bus" agus ceann eile a ligeann dúinn rudaí cineál "gluaisrothar" a pháirceáil, cé go bhfuil an nós imeachta chun na gníomhartha seo a dhéanamh in ainneoin an difríocht shuntasach idir cuma na dtrí fheithicil seo go bunúsach mar an gcéanna, níl ach ceann amháin ag áitiú níos mó spáis ná an ceann eile.

Is é an rud is cruinne a bheadh ​​ann modh amháin a bheith againn a shimplíonn rudaí dúinn agus a ligeann dúinn gach cineál feithicle a fháil, ní amháin gluaisteáin agus brandaí gluaisteán, ach gach díorthach luachmhar a nglactar leis ó réad na feithicle. Ar dtús ba mhaith linn an cód a athúsáid, mar mar a dúirt muid cheana, tá páirceáil na gcineálacha feithiclí seo cosúil leis an aon difríocht sa spás atá ag gach ceann acu, ach sa bhreis air seo, dá mbeadh amárach feithicil de chineál éigin eile ann amárach le dul ar díol sa mhargadh, bheadh ​​an fhéidearthacht againn go mbeadh ár mbogearraí in ann glacadh leis gan aon ghá ár rang Páirceála atá bunaithe cheana féin a mhodhnú.

Tá modh amháin againn atá ar fáil chun glacadh leis na hoidhreachtaí beachta go léir a d’fhéadfadh a bheith ag feithicil, rud a fhágann go bhfuil an obair níos solúbtha agus go sábhálfaí an t-am a chaithfimis ag cruthú ceann do gach cineál feithicle. Osclaíonn polymorphism i gclárú réad-dhírithe na doirse do raon rudaí ar féidir glacadh leo trí mhodh amháin.

Déanaimid iarracht an polymorphism a mhíniú ar an mbealach is sothuigthe agus athbhreithniú leathan a dhéanamh ar gach rud atá taobh thiar de, ní bheadh ​​sé oiriúnach léim láithreach chuig an gcoincheap mar sin gan a chúlra a sholáthar chun cabhrú linn é a thuiscint agus a thábhacht den scoth a thuiscint. agus tábhacht. úsáid is féidir linn a thabhairt dó.

Tá sé an-úsáideach an fhéidearthacht a bheith in ann roinnt modhanna a áireamh in aon mhodh amháin, cé go n-aontaíonn na díorthaigh mar oidhreacht an ruda, toisc go sábhálann sé an gá dúinn roinnt a chruthú chun iallach a chur orainn a bheith an-sonrach gan an deis a thabhairt dúinn a dhéanamh obair níos solúbtha sa mhéid gur féidir linn bealach níos dinimiciúla a chruthú chun an méid atá cláraithe againn a láimhseáil, chomh simplí agus a bheith ar an eolas faoi dhíorthú ceart aon fhocail amháin, is é sin, gach rud a chuimsíonn sé, cabhraíonn sé linn post níos éifeachtaí a dhéanamh .

Tá súil againn go mbainfidh tú taitneamh as an alt seo agus go bhfoghlaimeoidh tú cad é an polymorphism i gcláir réad-dhírithe. Más mian leat ceann eile dár n-alt ar ríomhchlárú a léamh, molaimid duit cuairt a thabhairt ar an gceann seo a leanas a thugann foirm an-aitheanta de chláir dúinn i saol an ríomhaire: Clárú C ++.


Cloíonn ábhar an ailt lenár bprionsabail eitic eagarthóireachta. Chun earráid a thuairisciú cliceáil anseo.

Bí ar an chéad trácht

Fág do thrácht

Ní thabharfar do sheoladh r-phoist a fhoilsiú. Réimsí riachtanacha atá marcáilte le *

*

*

  1. Freagrach as na sonraí: Blag Actualidad
  2. Cuspóir na sonraí: SPAM a rialú, bainistíocht trácht.
  3. Legitimation: Do thoiliú
  4. Na sonraí a chur in iúl: Ní chuirfear na sonraí in iúl do thríú páirtithe ach amháin trí oibleagáid dhlíthiúil.
  5. Stóráil sonraí: Bunachar sonraí arna óstáil ag Occentus Networks (EU)
  6. Cearta: Tráth ar bith is féidir leat do chuid faisnéise a theorannú, a aisghabháil agus a scriosadh.