Pagrindinis skirtumas – nepaisymas ir perkrovimas C
Pagrindinis skirtumas tarp nepaisymo ir perkrovimo C yra tas, kad nepaisyto metodo iškvietimas susiejamas su jo apibrėžimu vykdymo metu, o perkrauto metodo iškvietimas prie jo apibrėžimo įvyksta kompiliavimo metu.
C yra bendros paskirties programavimo kalba, kurią sukūrė Microsoft. Pagrindinis C privalumas yra tai, kad jis palaiko objektinį programavimą (OOP). Vienas iš OOP ramsčių yra polimorfizmas. Tai suteikia objektui, kad jis elgtųsi įvairiais būdais. Yra du polimorfizmo tipai, žinomi kaip nepaisymas ir perkrovimas. Šiame straipsnyje aptariamas skirtumas tarp metodo nepaisymo ir perkrovimo C.
Kas yra nepaisoma C?
Yra viena kita svarbi OOP sąvoka – paveldėjimas. Tai yra naudoti jau esamos klasės atributus ir metodus. Tai pagerina kodo pakartotinį naudojimą. Jau esama klasė yra pagrindinė klasė, o nauja klasė yra žinoma kaip išvestinė klasė. Jei nepaisoma polimorfizmo, turi būti pagrindinė klasė ir išvestinė klasė. Nepaisyto metodo iškvietimo susiejimas su apibrėžimu vyksta vykdymo metu. Pavyzdys yra toks.
01 pav. C programa su nepaisymu
Pagal aukščiau pateiktą programą, klasė Shape yra pagrindinė klasė ir joje yra rodymo metodas. Klasė Stačiakampis ir Trikampis yra išvestinės klasės. Šios išvestinės klasės taip pat turi tą patį metodų rodymą su savo įgyvendinimais.
Pirma, sukuriamas nuorodos kintamasis obj. Jis nurodo objektą Shape. Taigi, bus vykdomas Shape klasės rodymo metodas. Tada nuorodos kintamasis nurodo objektą Stačiakampis. Taigi, bus vykdomas stačiakampio klasės rodymo metodas. Galiausiai nuorodos kintamasis nurodo objektą Trikampis. Taigi, bus vykdomas trikampio klasės rodymo metodas. Bazinės klasės rodymo metodą nepaiso išvestinių klasių rodymo metodai.
Paleidimo metodas nustatomas vykdymo metu. „Shape“klasė parašyta „virtualiu“raktiniu žodžiu. Stačiakampio ir trikampio klasės parašytos naudojant raktinį žodį „nepaisyti“. Jei šie raktiniai žodžiai nenaudojami, išvestis išspausdins Shape klasės rodymo metodo turinį visiems.
Kas yra C perkrovimas?
Perkraunant, keli metodai turi tą patį pavadinimą, bet su skirtingais parametrais. Parametrai gali būti įvairių tipų. Metodai taip pat gali turėti skirtingą parametrų skaičių. Metodo perkrovimas vyksta toje pačioje klasėje. Perkrautų metodų susiejimas su apibrėžimu vyksta kompiliavimo metu. Žr. toliau pateiktą C programą.
02 pav. C programa su perkrova
Pagal aukščiau pateiktą programą, A klasė turi du metodus tuo pačiu pavadinimu, vadinamą suma. Jie turi skirtingus parametrų tipus. Pagrindinėje programoje sukuriamas A objektas. Suma (2, 3) iškvies sumos metodą su sveikaisiais skaičiais. Suma (5.1, 7.94) iškvies sumos metodą su dvigubomis reikšmėmis. Abu metodai turi tą patį pavadinimą ir tą patį parametrų skaičių. Tačiau parametrų tipai skiriasi. Atitinkamai vadinamas reikalingas metodas. Perkrova taip pat gali įvykti, jei metodų pavadinimai ir parametrų tipai yra vienodi, bet skiriasi parametrų skaičius.
Koks yra nepaisymo ir perkrovimo panašumas C?
Ir nepaisymas, ir perkrovimas C yra polimorfizmo tipai
Kuo skiriasi nepaisymas ir perkrovimas C?
Nepaisymas vs perkrovimas C |
|
Nepaisymas C yra pateikti konkretų įgyvendinimą išvestinėje klasės metodu metodui, kuris jau yra pagrindinėje klasėje. | Perkraunant C reikia sukurti kelis metodus tuo pačiu pavadinimu su skirtingais įgyvendinimais. |
Parametrai | |
Naudojant C nepaisymą, metodai turi tą patį pavadinimą, tuos pačius parametrų tipus ir tą patį parametrų skaičių. | C perkrovimo metu metodai turi tą patį pavadinimą, bet skirtingą parametrų skaičių arba kitokio tipo parametrus. |
Įvykis | |
C kalboje nepaisymas vyksta pagrindinėje ir išvestinėje klasėje. | C kalboje perkraunama toje pačioje klasėje. |
Įrišimo laikas | |
Nepaisyto metodo iškvietimo susiejimas su jo apibrėžimu įvyksta vykdymo metu. | Perkrauto metodo iškvietimo susiejimas su jo apibrėžimu vyksta kompiliavimo metu. |
Sinonimai | |
Nepaisymas vadinamas vykdymo laiko polimorfizmu, dinaminiu polimorfizmu arba vėlyvu susiejimu. | Perkrovimas vadinamas kompiliavimo laiko polimorfizmu, statiniu polimorfizmu arba ankstyvu susiejimu. |
Santrauka – nepaisymas ir perkrovimas C
Nepaisymas ir perkrovimas yra dviejų tipų polimorfizmas. Skirtumas tarp nepaisymo ir perkrovimo C yra tas, kad nepaisyto metodo iškvietimas susiejamas su jo apibrėžimu vykdymo metu, o perkrauto metodo iškvietimas susiejamas su jo apibrėžimu kompiliavimo metu.