Polimorfizmi (shkencë kompjuterike): Dallime mes rishikimesh

[Redaktim i kontrolluar][Redaktim i kontrolluar]
Content deleted Content added
Krijuar nga përkthimi i faqes "Polymorphism (computer science)"
 
 
Rreshti 1:
Në [[Teoria e gjuhës së programimit|teorinë e gjuhëve të programimit]] dhe [[Teoria e tipit|teorinë e tipeve]], '''polimorfizmi''' është përdorimi i një simboli të vetëm për të përfaqësuar shumë lloje të ndryshme. <ref name="Luca">{{Cite journal |last=Cardelli |first=Luca |author-link=Luca Cardelli |last2=Wegner |first2=Peter |author-link2=Peter Wegner |date=Decemberdhjetor 1985 |title=On understanding types, data abstraction, and polymorphism |url=http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf |journal=[[ACM Computing Surveys]] |volume=17 |issue=4 |pages=471–523 |citeseerx=10.1.1.117.695 |doi=10.1145/6041.6042}}: "Polymorphic types are types whose operations are applicable to values of more than one type."</ref>
 
Në [[Programimi i orientuar në objekte|programimin e orientuar nga objekti]], polimorfizmi është sigurimi i një ndërfaqeje të vetme për entitete të llojeve të ndryshme. <ref>
{{Cite web |last=Bjarne Stroustrup |date=February 19, shkurt 2007 |title=Bjarne Stroustrup's C++ Glossary |url=http://www.stroustrup.com/glossary.html#Gpolymorphism |quote=polymorphism – providing a single interface to entities of different types.}}</ref> Koncepti është huazuar nga një parim në [[Biologjia|biologji]] ku një organizëm ose specie mund të ketë shumë forma ose faza të ndryshme. <ref name="Moved">{{Cite web |title=Polymorphism |url=https://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html |access-date=2021-09-08 |website=The Java™ Tutorials: Learning the Java Language: Interfaces and Inheritance |publisher=Oracle}}</ref>
 
Format kryesore më të njohura të polimorfizmit janë:
Rreshti 8:
* ''Polimorfizmi ad hoc'' : përcakton një ndërfaqe të përbashkët për një bashkësi arbitrare të tipeve të specifikuara secili më vete.
* ''Polimorfizmi parametrik'' : nuk specifikon tipet konkrete dhe në vend të kësaj përdor simbole abstrakte që mund të zëvendësojnë çdo tip.
* ''Nëntipi'' (i quajtur edhe ''polimorfizëm i nëntipit'' ose ''polimorfizëm i përfshirjes'' ): kur një emër tregon shembuj të shumë klasave të ndryshme të lidhura nga një superklasë e përbashkët. <ref name="gbooch">{{Cite book |last=Conallen |first=J. |title=Object-Oriented Analysis and Design with Applications |last2=Engle |first2=M. |last3=Houston |first3=K. |last4=Maksimchuk |first4=R. |last5=Young |first5=B. |last6=Booch |first6=G. |date=2007 |publisher=Pearson Education |isbn=9780132797443 |edition=3rd |pages= |author-link6=Grady Booch}}</ref>
 
== Format ==
Rreshti 35:
 
=== Polimorfizmi parametrik ===
''Polimorfizmi parametrik'' lejon që një funksion ose një lloj të dhënash të shkruhet në mënyrë gjenerike, në mënyrë që të mund të trajtojë vlerat ''në mënyrë uniforme'', pa u varur nga lloji i tyre. <ref name="bjpierce">{{Cite book |last=Pierce |first=B.C. |url= |title=Types and Programming Languages |date=2002 |publisher=MIT Press |isbn=9780262162098 |pages=340–1 |chapter=23.2 Varieties of Polymorphism |chapter-url=https://books.google.com/books?id=ti6zoAC9Ph8C&pg=PA340}}</ref> Polimorfizmi parametrik është një mënyrë për ta bërë një gjuhë më shprehëse duke ruajtur ende sigurinë e plotë të tipit statik.
 
Koncepti i polimorfizmit parametrik zbatohet si për tipet e të dhënave ashtu edhe [[Funksioni (programimi)|për funksionet]]. Një funksion që mund të vlerësohet ose të zbatohet mbi vlera të llojeve të ndryshme njihet si ''funksion polimorfik.'' Një lloj i të dhënave që mund të duket se është i një lloji të përgjithësuar (p.sh. një listë me elementë të tipit arbitrar) caktohet ''lloji polimorfik i të dhënave'' si lloji i përgjithësuar nga i cili janë bërë specializime të tilla.