Kas yra polimorfizmas programavime?
sobes.tech AI
Atsakymas iš AI
Polimorfizmas — tai gebėjimas objektų iš skirtingų klasių reaguoti į tą patį metodo iškvietimą skirtingai. Tai pasiekiama naudojant paveldėjimą, abstrakčius klases ir sąsajas. C# polimorfizmas išreiškiamas per bazinio metodo perrašymą (overriding) ir perkrovimą (overloading):
Polimorfizmo pavyzdžiai:
-
Metodų perrašymas (Runtime Polymorphism): Paveldėtas klasė pateikia savo versiją bazinio klasės metodo, žymimo
virtual. Tai daroma naudojantoverrideraktinį žodį.// Bazinis klasė class Shape { // Virtualus metodas, kurį galima perrašyti public virtual void Draw() { // Numatytoji įgyvendinimas } } // Paveldėta klasė 1 class Circle : Shape { // Perrašyti metodą Draw public override void Draw() { // Įgyvendinimas apskritimui } } // Paveldėta klasė 2 class Square : Shape { // Perrašyti metodą Draw public override void Draw() { // Įgyvendinimas kvadratui } }Šiuo atveju galima sukurti
Shapeobjektų sąrašą ir iškviestiDrawmetodą kiekvienam, ir bus iškviesta konkreti įgyvendinimas. -
Perkraustymas (Compile-time Polymorphism): Kelios metodų versijos su tuo pačiu pavadinimu, bet skirtingais parametrais (kiekis ar tipas) viename klase.
class Calculator { // Perkrautas metodas Add (int) public int Add(int x, int y) { return x + y; } // Perkrautas metodas Add (double) public double Add(double x, double y) { return x + y; } }
Polimorfizmas padeda kurti lankstesnį, plėtojamas ir lengvai palaikomą kodą. Jis leidžia rašyti bendrą kodą, kuris gali dirbti su skirtingų tipų objektais.