Wat ass den Ënnerscheed tëscht der Zesummestellung vun der Zäit Polymorphismus an der Runtime Polymorphismus?


beäntweren 1:

Polymorphismus kann zwou Formen huelen:

1) statesch "Zesummesetzung Zäit" an

2) dynamesch "Runtime".

I. Statesche Polymorphismus

Wann verschidde Forme vun enger eenzeger Entitéit zur Kompilatiounszäit geléist ginn (fréi bindend), gëtt sou e Polymorphismus e statesche Polymorphismus genannt.

Operateur Iwwerlaascht ass e Beispill vu statesche Polymorphismus.

E Beispill vun dësem an C ++ fannt Dir hei:

Benotzt de Bedreiwer Schlësselwuert an C ++ (iwwerlaascht déi existent Operatoren)

II. Runtime Polymorphismus

Wa verschidde Forme vun enger eenzeger Entitéit bei der Rentrée geléist ginn (spéit verbindlech), gëtt sou e Polymorphismus dynamesch Polymorphismus genannt.

C ++ implementéiert "runtime polymorphism" mat der virutaler Funktioun.

Dir kënnt méi iwwer dëst Thema hei fannen

Retour Typ vun der virtueller Funktioun


beäntweren 2:

Polymorphismus an C # mat Echtzäit Beispill

Wat ass Polymorphismus?

Et gëtt benotzt fir en Objet wéi verschidde Formen ze behuelen. Oder Polymorphismus heescht engem Numm, vill Formen.

Echtzäit Beispill:

1. Eng Persoun behuelen sech als Employé am Büro, déi selwecht Persoun behuelen sech als Papp am Haus, déi selwecht Persoun behuelen sech als Client am Akafszentren.

Beschreiwung: Eng Persoun ass en Objet. Et behuelen sech wéi en Employé am Büro wéi och de Papp am Haus. Also d'Konzept hei ass e Numm, vill Formen.

Aart vu Polymorphismus

  • Compil-Zäit Polymorphismus / Statesch Polymorphismus Zréckzäit Polymorphismus / dynamesche Polymorphismus
  • Statesch oder zesummegesat Zäit Polymorphismus:

De statesche Polymorphismus oder de Polymorphismus vun der Compilatiounszäit kënne mat Hëllef vun der Funktioun "Funktioun Iwwerlaascht" erreecht ginn. Wou de Compiler weess wéi eng iwwerlaascht Method fir an der Compilatiounszäit ze ruffen.

Funktioun iwwerlaascht bedeit dee selwechte Method Numm, awer d'Parameter Type soll anescht sinn.

Beispill 1: Dëst ass d'Grond Beispill fir d'Konzept vun der Iwwerlaaschtung vu Methoden ze verstoen.

System benotzt; Nummraum MethodOverloading {Klasseprogramm {// Method iwwerlaascht ëffentlech Int Füügt (int x, int y) {return x + y; } public int Fügt (int x, int y, int z) {return x + y + z; } statesch Void Main (String [] args) {program prog = neie Programm (); Console.WriteLine ("Zousatz vun der Nummer ass {0}", prog.Dot (10, 20)); Console.WriteLine ("Zousatz vun der Nummer ass {0}", prog.Dot (10, 20, 30)); Konsol.ReadLine (); }}}

Editioun:

Echtzäit Beispill vu statesche oder zesummegestallten Zäit-Polymer

Beispill 2: Dëst ass den Echtzäit Beispill fir d'Konzept vun der Iwwerlaaschtung vu Methode ze verstoen.

System benotzt; Nummraum MethodOverloading {public user {public void UserLogin (String uname, string password) {if (uname == "user" && password == "user @ 123") {// Get data from the database. Console.WriteLine ("{0} ass valabel an erfollegräich ageloggt .........", net uname); } soss {Console.WriteLine ("Ongëlteg Benotzernumm oder Passwuert!"); }} ëffentlech Void UserLogin (String uname, String Passwuert, String Roll) {if (role == "Admin" && (uname == "admin" && Passwuert == "admin @ 123")) {// Daten aus der Datebank sichen. Console.WriteLine ("{0} ass valabel an erfollegräich ageloggt .........", Roll); } soss {Console.WriteLine ("Ongëlteg Benotzernumm oder Passwuert!"); }}} Klasseprogramm {statesch ongëlteg Main (String [] args) {user user = neie Benotzer (); user.UserLogin ("Benotzer", "Benotzer @ 123"); user.UserLogin ("admin", "admin @ 123", "Admin"); Konsol.ReadLine (); }}}

Editioun:

Bemierkung: Am Compil-time Polymorphismus weess de Compiler zum Moment vun der Compilatioun wéi eng Method nennt.

  • Dynamesch oder Runtime Polymorphismus:

1. Wann den Objet sech a ville Formen am Runtime verhält, schwätzt ee vun engem Runtime-Polymorphismus.

2. Runtime Polymorphismus kann erreecht ginn andeems d'Methode iwwerschreiden. D'Method kann iwwerschriwwe ginn an Elteren a Kannerklassen.

3. Iwwerdribblen fir d'Method heescht datt d'Methodennamen an d'Lëscht vun de Parameteren an der Elter- a Kannerklass d'selwecht solle sinn.

4. Et ass och bekannt als spéit Bindung.

Beispill

Méi detailléiert:

Polymorphismus an C # mat Echtzäit Beispill


beäntweren 3:

Polymorphismus an C # mat Echtzäit Beispill

Wat ass Polymorphismus?

Et gëtt benotzt fir en Objet wéi verschidde Formen ze behuelen. Oder Polymorphismus heescht engem Numm, vill Formen.

Echtzäit Beispill:

1. Eng Persoun behuelen sech als Employé am Büro, déi selwecht Persoun behuelen sech als Papp am Haus, déi selwecht Persoun behuelen sech als Client am Akafszentren.

Beschreiwung: Eng Persoun ass en Objet. Et behuelen sech wéi en Employé am Büro wéi och de Papp am Haus. Also d'Konzept hei ass e Numm, vill Formen.

Aart vu Polymorphismus

  • Compil-Zäit Polymorphismus / Statesch Polymorphismus Zréckzäit Polymorphismus / dynamesche Polymorphismus
  • Statesch oder zesummegesat Zäit Polymorphismus:

De statesche Polymorphismus oder de Polymorphismus vun der Compilatiounszäit kënne mat Hëllef vun der Funktioun "Funktioun Iwwerlaascht" erreecht ginn. Wou de Compiler weess wéi eng iwwerlaascht Method fir an der Compilatiounszäit ze ruffen.

Funktioun iwwerlaascht bedeit dee selwechte Method Numm, awer d'Parameter Type soll anescht sinn.

Beispill 1: Dëst ass d'Grond Beispill fir d'Konzept vun der Iwwerlaaschtung vu Methoden ze verstoen.

System benotzt; Nummraum MethodOverloading {Klasseprogramm {// Method iwwerlaascht ëffentlech Int Füügt (int x, int y) {return x + y; } public int Fügt (int x, int y, int z) {return x + y + z; } statesch Void Main (String [] args) {program prog = neie Programm (); Console.WriteLine ("Zousatz vun der Nummer ass {0}", prog.Dot (10, 20)); Console.WriteLine ("Zousatz vun der Nummer ass {0}", prog.Dot (10, 20, 30)); Konsol.ReadLine (); }}}

Editioun:

Echtzäit Beispill vu statesche oder zesummegestallten Zäit-Polymer

Beispill 2: Dëst ass den Echtzäit Beispill fir d'Konzept vun der Iwwerlaaschtung vu Methode ze verstoen.

System benotzt; Nummraum MethodOverloading {public user {public void UserLogin (String uname, string password) {if (uname == "user" && password == "user @ 123") {// Get data from the database. Console.WriteLine ("{0} ass valabel an erfollegräich ageloggt .........", net uname); } soss {Console.WriteLine ("Ongëlteg Benotzernumm oder Passwuert!"); }} ëffentlech Void UserLogin (String uname, String Passwuert, String Roll) {if (role == "Admin" && (uname == "admin" && Passwuert == "admin @ 123")) {// Daten aus der Datebank sichen. Console.WriteLine ("{0} ass valabel an erfollegräich ageloggt .........", Roll); } soss {Console.WriteLine ("Ongëlteg Benotzernumm oder Passwuert!"); }}} Klasseprogramm {statesch ongëlteg Main (String [] args) {user user = neie Benotzer (); user.UserLogin ("Benotzer", "Benotzer @ 123"); user.UserLogin ("admin", "admin @ 123", "Admin"); Konsol.ReadLine (); }}}

Editioun:

Bemierkung: Am Compil-time Polymorphismus weess de Compiler zum Moment vun der Compilatioun wéi eng Method nennt.

  • Dynamesch oder Runtime Polymorphismus:

1. Wann den Objet sech a ville Formen am Runtime verhält, schwätzt ee vun engem Runtime-Polymorphismus.

2. Runtime Polymorphismus kann erreecht ginn andeems d'Methode iwwerschreiden. D'Method kann iwwerschriwwe ginn an Elteren a Kannerklassen.

3. Iwwerdribblen fir d'Method heescht datt d'Methodennamen an d'Lëscht vun de Parameteren an der Elter- a Kannerklass d'selwecht solle sinn.

4. Et ass och bekannt als spéit Bindung.

Beispill

Méi detailléiert:

Polymorphismus an C # mat Echtzäit Beispill