Чим відрізняється поліморфізм часу компіляції від поліморфізму часу виконання?


Відповідь 1:

Поліморфізм може бути двох форм:

1) статичний "час компіляції" і

2) динамічний "час виконання".

I. Статичний поліморфізм

Коли різні форми однієї сутності вирішуються під час компіляції (раннє зв’язування), такий поліморфізм називається статичним поліморфізмом.

"Перевантаження оператора" - приклад статичного поліморфізму.

Приклад цього в C ++ можна знайти тут:

Використовувати ключове слово Operator на C ++ (перевантажувати існуючі оператори)

II. Поліморфізм під час виконання

Коли під час виконання (пізнє зв'язування) розв'язуються різні форми єдиного утворення, такий поліморфізм називається динамічним поліморфізмом.

C ++ реалізує "поліморфізм виконання", використовуючи функцію віруру.

Більше про цю тему можна дізнатися

Тип повернення віртуальної функції


Відповідь 2:

Поліморфізм у C # із прикладом у реальному часі

Що таке поліморфізм?

Він використовується для одного об'єкта, що веде себе як кілька форм. Або поліморфізм означає одну назву безлічі форм.

Приклад у режимі реального часу:

1. Людина поводиться як працівник в офісі, що та сама людина поводиться як батько в будинку, що та сама людина поводиться як клієнт у торгових центрах.

Опис: людина - це один об’єкт. Він поводиться як працівник в офісі, так і батько в будинку. Тож поняття тут одне найменування багато форм.

Тип поліморфізму

  • Поліморфізм часу на компіляції / Статичний поліморфізм Поліморфізм часу в часі / Динамічний поліморфізм
  • Поліморфізм статичного або компілюваного часу:

Поліморфізм статичного або компільованого часу може бути досягнутий за допомогою «перевантаження функцій».

перевантаження функції означає те саме ім'я методу, але тип параметра повинен відрізнятися.

Приклад 1: Це основний приклад для розуміння концепції методу перевантаження.

за допомогою системи;
Простір імен MethodOverloading
{
 Програма класу
 {
 // Метод перевантаження
 public int Додати (int x, int y)
 {
 повернення х + у;
 }
 public int Add (int x, int y, int z)
 {
 повернення x + y + z;
 }
 static void Main (string [] аргументи)
 {
 Програма програми = нова програма ();
 Console.WriteLine ("Додавання числа дорівнює {0}", prog.Add (10, 20));
 Console.WriteLine ("Додавання числа дорівнює {0}", prog.Add (10, 20, 30));
 Console.ReadLine ();
 }
 }
}

Вихід:

Приклад поліморфізму статичного або компілюваного часу в реальному часі

Приклад 2: Це приклад в реальному часі для розуміння концепції перевантаження методу.

за допомогою системи;
Простір імен MethodOverloading
{
 Користувач громадського класу
 {
 public void UserLogin (рядок без змін, рядок пароля)
 {
 if (uname == "user" && password == "user @ 123")
 {
 // Отримати дані з бази даних.
 Console.WriteLine ("{0} дійсний і зареєстровано успішно .........", уніме);
 }
 ще
 {
 Console.WriteLine ("Недійсне ім'я користувача або пароль!");
 }
 }
 public void UserLogin (рядок unme, пароль рядка, рядова роль)
 {
 if (роль == "Адміністратор" && (uname == "адміністратор" && пароль == "адміністратор @ 123"))
 {
 // Отримати дані з бази даних.
 Console.WriteLine ("{0} дійсний та зареєстрований успішно .........", роль);
 }
 ще
 {
 Console.WriteLine ("Недійсне ім'я користувача або пароль!");
 }
 }
 }
 Програма класу
 {
 static void Main (string [] аргументи)
 {
 User user = новий Користувач ();
 user.UserLogin ("користувач", "користувач @ 123");
 user.UserLogin ("адміністратор", "адміністратор @ 123", "Адміністратор");
 Console.ReadLine ();
 }
 }
}

Вихід:

Примітка. У поліморфізмі під час компіляції компілятор відомий за час компіляції, який метод викликається.

  • Динамічний поліморфізм або час виконання:

1. Кожен раз, коли об'єкт поводиться як кілька форм під час виконання, тоді, як кажуть, це поліморфізм часу виконання.

2. Поліморфізм часу виконання може бути досягнуто за допомогою методу переосмислення. Перевизначення методу може бути виконано в батьківському та дочірньому класі.

3. Переосмислення методу означає, що ім'я методу та список параметрів повинні бути однаковими у батьківському та дочірньому класі.

4. Його також називають пізнім зв'язуванням.

Приклад

Більш деатильний:

Поліморфізм у C # із прикладом у реальному часі


Відповідь 3:

Поліморфізм у C # із прикладом у реальному часі

Що таке поліморфізм?

Він використовується для одного об'єкта, що веде себе як кілька форм. Або поліморфізм означає одну назву безлічі форм.

Приклад у режимі реального часу:

1. Людина поводиться як працівник в офісі, що та сама людина поводиться як батько в будинку, що та сама людина поводиться як клієнт у торгових центрах.

Опис: людина - це один об’єкт. Він поводиться як працівник в офісі, так і батько в будинку. Тож поняття тут одне найменування багато форм.

Тип поліморфізму

  • Поліморфізм часу на компіляції / Статичний поліморфізм Поліморфізм часу в часі / Динамічний поліморфізм
  • Поліморфізм статичного або компілюваного часу:

Поліморфізм статичного або компільованого часу може бути досягнутий за допомогою «перевантаження функцій».

перевантаження функції означає те саме ім'я методу, але тип параметра повинен відрізнятися.

Приклад 1: Це основний приклад для розуміння концепції методу перевантаження.

за допомогою системи;
Простір імен MethodOverloading
{
 Програма класу
 {
 // Метод перевантаження
 public int Додати (int x, int y)
 {
 повернення х + у;
 }
 public int Add (int x, int y, int z)
 {
 повернення x + y + z;
 }
 static void Main (string [] аргументи)
 {
 Програма програми = нова програма ();
 Console.WriteLine ("Додавання числа дорівнює {0}", prog.Add (10, 20));
 Console.WriteLine ("Додавання числа дорівнює {0}", prog.Add (10, 20, 30));
 Console.ReadLine ();
 }
 }
}

Вихід:

Приклад поліморфізму статичного або компілюваного часу в реальному часі

Приклад 2: Це приклад в реальному часі для розуміння концепції перевантаження методу.

за допомогою системи;
Простір імен MethodOverloading
{
 Користувач громадського класу
 {
 public void UserLogin (рядок без змін, рядок пароля)
 {
 if (uname == "user" && password == "user @ 123")
 {
 // Отримати дані з бази даних.
 Console.WriteLine ("{0} дійсний і зареєстровано успішно .........", уніме);
 }
 ще
 {
 Console.WriteLine ("Недійсне ім'я користувача або пароль!");
 }
 }
 public void UserLogin (рядок unme, пароль рядка, рядова роль)
 {
 if (роль == "Адміністратор" && (uname == "адміністратор" && пароль == "адміністратор @ 123"))
 {
 // Отримати дані з бази даних.
 Console.WriteLine ("{0} дійсний та зареєстрований успішно .........", роль);
 }
 ще
 {
 Console.WriteLine ("Недійсне ім'я користувача або пароль!");
 }
 }
 }
 Програма класу
 {
 static void Main (string [] аргументи)
 {
 User user = новий Користувач ();
 user.UserLogin ("користувач", "користувач @ 123");
 user.UserLogin ("адміністратор", "адміністратор @ 123", "Адміністратор");
 Console.ReadLine ();
 }
 }
}

Вихід:

Примітка. У поліморфізмі під час компіляції компілятор відомий за час компіляції, який метод викликається.

  • Динамічний поліморфізм або час виконання:

1. Кожен раз, коли об'єкт поводиться як кілька форм під час виконання, тоді, як кажуть, це поліморфізм часу виконання.

2. Поліморфізм часу виконання може бути досягнуто за допомогою методу переосмислення. Перевизначення методу може бути виконано в батьківському та дочірньому класі.

3. Переосмислення методу означає, що ім'я методу та список параметрів повинні бути однаковими у батьківському та дочірньому класі.

4. Його також називають пізнім зв'язуванням.

Приклад

Більш деатильний:

Поліморфізм у C # із прикладом у реальному часі