Відтепер ви знайомі з інстанцієюВнутрішні класи на Яві, ми можемо говорити про поліморфізм та методи перевантаження. Поліморфізм - це здатність об’єкта Java реагувати рівномірно для досягнення конкретної поведінки на однойменні виклики методу, але з різними реалізаціями. На Яві концепцію поліморфізму можна досягти кількома способами. Ось наш підручник Java з кодом для перевантаження методів.
Підручник Java з кодом для перевантаження методом.
Що таке метод перевантаження
У Java можна визначити два і більшеметоди в одному класі, що мають одне і те ж ім’я. Однак оголошення їх параметрів повинні бути різними. Зазначені типи методів, як кажуть, перевантажені, і процес називається методом перевантаження.
Метод перевантаження підтримує поліморфізм тому що один із способів Java реалізує парадигму "один інтерфейс, кілька методів".
Властивості
- У класі концепція перевантаження методу не дозволяє зовнішньому користувачеві усвідомлювати внутрішню обробку системи.
- Перевантажені методи відрізняються або кількістю параметрів, або типом параметрів, або послідовністю параметрів.
- Перевантажені методи вирішуються в наступних послідовностях:
- Кількість параметрів.
- Тип параметрів.
- Послідовність параметрів.
На основі цих методів викликається відповідно повернення бажаного результату.
- Метод Перевантаження дозволяє користувачеві досягти скласти поліморфізм часу.
- Перевантажені методи можуть мати однакові або різні типи повернення.
Програма Java для перевантаження методів
class Figure{ /* Calculate Area of Square */ void area(double length){ System.out.println("Area of Square is: "+Math.pow(length,2)); } /* Calculate Area of Rectangle */ void area(double length,double breadth){ System.out.println("Area of Rectangle is: "+(length*breadth)); } /* Calculate Area of Cylinder */ void area(double radius,int height){ System.out.println("Area of Cylinder is: "+(2*3.14*Math.pow(radius,2)*height)); } /* Calculate Area of Cube */ void area(int arms){ System.out.println("Area of Cube is: "+(6*arms*arms)); } } class CalculateArea{ public static void main(String args[]){ Figure fig = new Figure(); fig.area(5.25); fig.area(4.5,5.5); fig.area(2); fig.area(3.2,6); } }
Вихід методу перевантаження.
Пояснення Java-коду та виводу
Тут, в межах класу Рисунок, область () перевантаженаметод, що має однакове ім'я з різними реалізаціями, тобто парадигмою "один інтерфейс, кілька методів". Ви можете легко зрозуміти, що один і той же метод використовується для виконання різних операцій, тобто обчислення областей різних геометричних областей на основі кількості / типу / послідовності пройдених параметрів і виробляється потрібний вихід.
Викликання методу може бути будь-якого порядку. Як метод області () для обчислення площі куба, що викликається перед викликом методу області () для обчислення площі циліндра.
У програмі ми також назвали один статичний метод pow () класу Math, який є членом пакету java.lang для обчислення площі будь-якого числа.
Спалах увімкнено
Під час вирішення перевантажених методів працює Javaйого автоматичні перетворення типу, лише якщо не знайдено точної відповідності. Як видно нижче, клас перевантаження не визначає display (int), але він вже має відображення (подвійний).
Тому, коли display () викликається символом anцілий аргумент всередині OverloadDemo, метод відповідності не знайдений. Однак Java може автоматично перетворити ціле число в подвійне, і це перетворення може використовуватися для вирішення виклику. Тому після того, як дисплей (int) не знайдений, Java підвищує "i", щоб подвоїтись, а потім викликає показ (double). Звичайно, якби було визначено "display (int)", воно було б назване замість цього.
class Overload { // display method with no parameters void display() { System.out.println("No parameters"); } // Overload display for two integer parameters. void display(int a, int b) { System.out.println("a and b: " + a + " " + b); } // overload display for a double parameter void display(double a) { System.out.println("a: " + a); } } class OverloadDemo { public static void main(String args[]) { Overload overload = new Overload(); int i = 88; ob.display(); ob.display (10, 20); ob.display (i); // this will invoke display(double) ob.display (123.2); // this will invoke display(double) } }
Н.Б .: Це перетворення справедливо для нижчого типу даних (наприклад, int) для більш високого типу даних (наприклад, подвійного) перетворення, а не для зворотного (подвійне до int).
У наступному підручнику ми дізнаємось про перевантаження Constructor на Java.
Коментарі