Page 41 - 6253
P. 41
}
class Overload {
public static void main(String args[] ) {
OverloadDemo ob = new OverloadDemo();
double result;
// Виклик усіх версій методу test
ob.test();
ob.test(10);
ob.test(10, 20);
result=ob. test(123.2);
System.out.println (“Результат = ” + result);
}
}
Якщо типи параметрів не збігаються з параметрами хоча б одного з методів,
то відбувається автоматичне приведення типів. Заберемо в попередньому прикладі у
визначенні класу OverloadDemo версію методу test(int а). Тоді при звертанні
ob.test(10) відбудеться приведення 10 до типу double і виклик методу test(double а).
При наявності необхідного методу приведення типів не відбувається і звертання
здійснюється до відповідного методу без приведення типів. Без реалізації
перевантажених методів кожний метод повинен був би мати унікальне ім’я.
Цінність перевантаження методів полягає у можливості присвоїти одне ім’я
спорідненим методом. Ім’я у цьому випадку вказує на спільну дію, яка не залежить
від типів аргументів. Вибір конкретної версії методу здійснює компілятор.
Унаслідок перевантаження методів кожна його версія може виконувати будь-
які дії. Немає правила, яке б вимагало, щоб перевантажені методи мали виконувати
подібні функції. Проте з погляду стилю ООП, під час перевантаження методів вже
зрозуміло, що це реалізація поліморфізму і виконуються споріднені операції.
2.4. Конструктори класу
При створенні чергового екземпляра класу проводити ініціалізацію усіх його
40