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


Відповідь 1:

Поліморфізм на Яві

Поліморфізм означає існування Об'єктної поведінки у багатьох формах

Існує два типи поліморфізму

i) Складіть поліморфізм у часі / Статичне зв'язування / Метод перевантаження

ii) Поліморфізм часу виконання / динамічне зв'язування / переосмислення методу

різниця між поліморфізмом часу компіляції та часу виконання:

i) Скомпілювати поліморфізм у часі Якщо два або більше методів, що мають однакове ім’я в одному класі, але вони відрізняються наступними способами.

i) Кількість аргументів

ii) Тип аргументів

Приклад: публічний клас MethodOverloading {public void add (int a, int b) {System.out.println (a + b); } public void add (int a, int b, int c) {System.out.println (a + b + c); } public void add (подвійний a, подвійний b) {System.out.println (a + b); } public void add (double a, double b, double c) {System.out.println (a + b + c); } загальнодоступна статична пустота main (String [] args) {MethodOverloading obj = new MethodOverloading (); obj.add (10, 20); obj.add (10, 20, 30); obj.add (1.2345, 2.3456); obj.add (1.2345, 2.3456, 4.45678); }} ----------------------------------------- ii) Поліморфізм часу роботи

Якщо у суперкласі та підкласі доступні два чи більше методів, що мають однакове ім’я та однакові аргументи.

Приклад:

Публічний клас 1 класу A {

public void add (int a, int b) {System.out.println (a + b);} public static void main (String [] args) {A myObject = new A (); myObject.addition (10, 20); // 30}} ------------------------------ 2 клас: суспільний клас B розширює A {public void add (int a, int b) {System.out.println (a + b); } загальнодоступна статична пустота main (String [] args) {A obj1 = new A (); obj1.addition (10, 20); // 30 B obj2 = новий B (); obj2.addition (40, 50); // 90}} ------------------------------------ --------------


Відповідь 2:

Час компіляції означає те, що ви робите під час компіляції програми, а час виконання - це те, що ви робите під час виконання (час виконання) програми.

Наприклад:

клас А

{public void show () {System.out.println ("A"); }}

клас B поширюється на A

{public void show () {System.out.println (“B”); }}

клас Поліморфізм

{PSVM (String args [])

A a = новий A ();

B b = новий B ();

шоу; // Це Поліморфізм часу компіляції, тому що метод, який потрібно виконати, вирішується протягом часу компіляції, бачачи тип даних об'єкта, що викликає (у даному випадку - це посилальна змінна класу A)

Пробіг; // Довідкова змінна класу A

  1. runT = a; runT.show (); // виконає метод класу ArunT = b; runT.show (); // виконає метод класу B

}

Заява 2,4 однакова. Тож компілятор не зможе вирішити, який метод виконати. Так воно компілює. Тепер під час запуску JVM (віртуальна машина Java) після перегляду заяви 1 зберігає посилання класу A у runT. Отже (2) буде виконувати метод класу A. Тепер у викладі 3 зберігається посилання класу B у runT. Таким чином, (4) буде виконувати метод класу B. Метод, який потрібно виконати, вибирається під час виконання.

Сподіваюсь, що тепер можна розрізнити час / час компіляції та поліморфізм часу виконання.


Відповідь 3:

Час компіляції означає те, що ви робите під час компіляції програми, а час виконання - це те, що ви робите під час виконання (час виконання) програми.

Наприклад:

клас А

{public void show () {System.out.println ("A"); }}

клас B поширюється на A

{public void show () {System.out.println (“B”); }}

клас Поліморфізм

{PSVM (String args [])

A a = новий A ();

B b = новий B ();

шоу; // Це Поліморфізм часу компіляції, тому що метод, який потрібно виконати, вирішується протягом часу компіляції, бачачи тип даних об'єкта, що викликає (у даному випадку - це посилальна змінна класу A)

Пробіг; // Довідкова змінна класу A

  1. runT = a; runT.show (); // виконає метод класу ArunT = b; runT.show (); // виконає метод класу B

}

Заява 2,4 однакова. Тож компілятор не зможе вирішити, який метод виконати. Так воно компілює. Тепер під час запуску JVM (віртуальна машина Java) після перегляду заяви 1 зберігає посилання класу A у runT. Отже (2) буде виконувати метод класу A. Тепер у викладі 3 зберігається посилання класу B у runT. Таким чином, (4) буде виконувати метод класу B. Метод, який потрібно виконати, вибирається під час виконання.

Сподіваюсь, що тепер можна розрізнити час / час компіляції та поліморфізм часу виконання.


Відповідь 4:

Час компіляції означає те, що ви робите під час компіляції програми, а час виконання - це те, що ви робите під час виконання (час виконання) програми.

Наприклад:

клас А

{public void show () {System.out.println ("A"); }}

клас B поширюється на A

{public void show () {System.out.println (“B”); }}

клас Поліморфізм

{PSVM (String args [])

A a = новий A ();

B b = новий B ();

шоу; // Це Поліморфізм часу компіляції, тому що метод, який потрібно виконати, вирішується протягом часу компіляції, бачачи тип даних об'єкта, що викликає (у даному випадку - це посилальна змінна класу A)

Пробіг; // Довідкова змінна класу A

  1. runT = a; runT.show (); // виконає метод класу ArunT = b; runT.show (); // виконає метод класу B

}

Заява 2,4 однакова. Тож компілятор не зможе вирішити, який метод виконати. Так воно компілює. Тепер під час запуску JVM (віртуальна машина Java) після перегляду заяви 1 зберігає посилання класу A у runT. Отже (2) буде виконувати метод класу A. Тепер у викладі 3 зберігається посилання класу B у runT. Таким чином, (4) буде виконувати метод класу B. Метод, який потрібно виконати, вибирається під час виконання.

Сподіваюсь, що тепер можна розрізнити час / час компіляції та поліморфізм часу виконання.