Quina diferència hi ha entre el polimorfisme del temps de compilació i el polimorfisme d'execució?


Resposta 1:

El polimorfisme pot ser de dues formes:

1) "compilar el temps" estàtic i

2) "temps d'execució" dinàmic.

I. Polimorfisme estàtic

Quan diferents formes d’una sola entitat es resolen a l’hora de compilar (enquadernació precoç), aquest polimorfisme s’anomena polimorfisme estàtic.

La "sobrecàrrega de l'operador" és un exemple de polimorfisme estàtic.

Podeu trobar un exemple d’això en C ++:

Utilitzeu la paraula clau de l’operador en C ++ (sobrecàrrega els operadors existents)

II. Runtime Polymorphism

Quan diferents formes d’una sola entitat es resolen durant el temps d’execució (enquadernació tardana), aquest polimorfisme s’anomena polimorfisme dinàmic.

C ++ implementa un "polimorfisme en temps d'execució" utilitzant la funció virutal.

Podeu trobar més informació sobre aquest tema

Tipus de retorn de funció virtual


Resposta 2:

Polimorfisme en C # amb exemple de temps real

Què és el polimorfisme?

S'acostuma a un objecte que es comporti com a formes múltiples. O polimorfisme significa un nom de moltes formes.

Exemple de temps real:

1. Una persona es comporta com a empleada a l’oficina, que la mateixa persona es comporta com a pare a la casa, que la mateixa persona es comporta com a client als centres comercials.

Descripció: una persona és un objecte. Es comporta com un empleat al despatx, així com el pare de la casa. Així, el concepte és aquí un nom en moltes formes.

Tipus de polimorfisme

  • Compila polimorfisme de temps / Polimorfisme estàtic Polimorfisme de temps / Polimorfisme dinàmic
  • Polimorfisme estàtic o de compilació:

El polimorfisme de temps estàtic o de compilació es pot aconseguir mitjançant la "sobrecàrrega de funcions". Quan el compilador sap quin mètode de sobrecàrrega es dirà al mateix temps.

La sobrecàrrega de funcions significa el mateix nom del mètode, però el tipus de paràmetre ha de ser diferent.

Exemple 1: Aquest és l’exemple bàsic per comprendre el concepte de sobrecàrrega de mètodes.

utilitzant Sistema;
namespace MethodOverloading
{
 Programa de classe
 {
 // Mètode de sobrecàrrega
 add public int (int x, int y)
 {
 retornar x + y;
 }
 add public int (int x, int y, int z)
 {
 retornar x + y + z;
 }
 static void Main (cadena [] args)
 {
 Programa prog = nou Programa ();
 Console.WriteLine ("L’addició del nombre és {0}", prog.Add (10, 20));
 Console.WriteLine ("L’addició del nombre és {0}", prog.Add (10, 20, 30));
 Console.ReadLine ();
 }
 }
}

Sortida:

Exemple en temps real de polimorfisme de temps estàtic o Compile

Exemple 2: és l'exemple de temps real per comprendre el concepte de sobrecàrrega de mètodes.

utilitzant Sistema;
namespace MethodOverloading
{
 Usuari de classe pública
 {
 public void UserLogin (cadena sense nom, contrasenya de la cadena)
 {
 if (uname == "usuari" && password == "user @ 123")
 {
 // Obteniu dades de la base de dades.
 Console.WriteLine ("{0} és vàlid i es va registrar amb èxit .........", sense aparèixer);
 }
 més
 {
 Console.WriteLine ("Nom d'usuari o contrasenya no vàlids!");
 }
 }
 public void UserLogin (cadena sense nom, contrasenya de cadena, rol de cadena)
 {
 if (role == "Administrador" && (uname == "admin" && password == "admin @ 123"))
 {
 // Obteniu dades de la base de dades.
 Console.WriteLine ("{0} és vàlid i es registra amb èxit .........", paper);
 }
 més
 {
 Console.WriteLine ("Nom d'usuari o contrasenya no vàlids!");
 }
 }
 }
 Programa de classe
 {
 static void Main (cadena [] args)
 {
 Usuari usuari = Usuari nou ();
 user.UserLogin ("usuari", "usuari @ 123");
 user.UserLogin ("administrador", "administrador @ 123", "Administrador");
 Console.ReadLine ();
 }
 }
}

Sortida:

Nota: Al polimorfisme de temps de compilació es coneix el compilador en compilar el temps que s'anomena mètode.

  • Polimorfisme dinàmic o en temps d'execució:

1. Sempre que l'objecte es comporta com a formes múltiples en temps d'execució, es diu que és un polimorfisme en temps d'execució.

2. El polimorfisme en temps d'execució es pot aconseguir mitjançant el mètode que substitueix. El mètode de substitució es pot fer a classe de pares i fills.

3. El mètode que substitueix significa que el nom i la llista del paràmetre del mètode haurien de ser els mateixos en la classe de pare i fill.

4. També s’anomena enquadernació tardana.

Exemple

Més deatil:

Polimorfisme en C # amb exemple de temps real


Resposta 3:

Polimorfisme en C # amb exemple de temps real

Què és el polimorfisme?

S'acostuma a un objecte que es comporti com a formes múltiples. O polimorfisme significa un nom de moltes formes.

Exemple de temps real:

1. Una persona es comporta com a empleada a l’oficina, que la mateixa persona es comporta com a pare a la casa, que la mateixa persona es comporta com a client als centres comercials.

Descripció: una persona és un objecte. Es comporta com un empleat al despatx, així com el pare de la casa. Així, el concepte és aquí un nom en moltes formes.

Tipus de polimorfisme

  • Compila polimorfisme de temps / Polimorfisme estàtic Polimorfisme de temps / Polimorfisme dinàmic
  • Polimorfisme estàtic o de compilació:

El polimorfisme de temps estàtic o de compilació es pot aconseguir mitjançant la "sobrecàrrega de funcions". Quan el compilador sap quin mètode de sobrecàrrega es dirà al mateix temps.

La sobrecàrrega de funcions significa el mateix nom del mètode, però el tipus de paràmetre ha de ser diferent.

Exemple 1: Aquest és l’exemple bàsic per comprendre el concepte de sobrecàrrega de mètodes.

utilitzant Sistema;
namespace MethodOverloading
{
 Programa de classe
 {
 // Mètode de sobrecàrrega
 add public int (int x, int y)
 {
 retornar x + y;
 }
 add public int (int x, int y, int z)
 {
 retornar x + y + z;
 }
 static void Main (cadena [] args)
 {
 Programa prog = nou Programa ();
 Console.WriteLine ("L’addició del nombre és {0}", prog.Add (10, 20));
 Console.WriteLine ("L’addició del nombre és {0}", prog.Add (10, 20, 30));
 Console.ReadLine ();
 }
 }
}

Sortida:

Exemple en temps real de polimorfisme de temps estàtic o Compile

Exemple 2: és l'exemple de temps real per comprendre el concepte de sobrecàrrega de mètodes.

utilitzant Sistema;
namespace MethodOverloading
{
 Usuari de classe pública
 {
 public void UserLogin (cadena sense nom, contrasenya de la cadena)
 {
 if (uname == "usuari" && password == "user @ 123")
 {
 // Obteniu dades de la base de dades.
 Console.WriteLine ("{0} és vàlid i es va registrar amb èxit .........", sense aparèixer);
 }
 més
 {
 Console.WriteLine ("Nom d'usuari o contrasenya no vàlids!");
 }
 }
 public void UserLogin (cadena sense nom, contrasenya de cadena, rol de cadena)
 {
 if (role == "Administrador" && (uname == "admin" && password == "admin @ 123"))
 {
 // Obteniu dades de la base de dades.
 Console.WriteLine ("{0} és vàlid i es registra amb èxit .........", paper);
 }
 més
 {
 Console.WriteLine ("Nom d'usuari o contrasenya no vàlids!");
 }
 }
 }
 Programa de classe
 {
 static void Main (cadena [] args)
 {
 Usuari usuari = Usuari nou ();
 user.UserLogin ("usuari", "usuari @ 123");
 user.UserLogin ("administrador", "administrador @ 123", "Administrador");
 Console.ReadLine ();
 }
 }
}

Sortida:

Nota: Al polimorfisme de temps de compilació es coneix el compilador en compilar el temps que s'anomena mètode.

  • Polimorfisme dinàmic o en temps d'execució:

1. Sempre que l'objecte es comporta com a formes múltiples en temps d'execució, es diu que és un polimorfisme en temps d'execució.

2. El polimorfisme en temps d'execució es pot aconseguir mitjançant el mètode que substitueix. El mètode de substitució es pot fer a classe de pares i fills.

3. El mètode que substitueix significa que el nom i la llista del paràmetre del mètode haurien de ser els mateixos en la classe de pare i fill.

4. També s’anomena enquadernació tardana.

Exemple

Més deatil:

Polimorfisme en C # amb exemple de temps real