методи претоварване клас В Java, Java блог само за

методи претоварване клас В Java, Java блог само за
В днешната статия се фокусира върху един от най-интересните Java език означава - методите претоварване клас. Има няколко метода на клас може да има същото име, се различават само от набор от параметри.

Метод претоварване е един от начините за прилагане на принципа на полиморфизъм в Java.

С цел да се претовари метода да обяви нова версия е достатъчно, за разлика-yuschiysya на съществуващите, а всичко останало ще направи компилатор. Необходимо е само да се наблюдава едно условие тип и / или броя на параметрите на всеки от претоварени методи трябва да са различни.

Броени различия в типовете стойности за връщане за тази цел е достатъчно. (За повече информация относно типа на връщане не винаги е достатъчно, за Java, за да се вземе решение, за което трябва да се използва метод.)

Разбира се, методи NE-regruzhaemye могат да имат различни типове връщане, но когато методът се осъществява само един вариант, при който параметрите на съответните аргументи минута.

Ето един прост пример за програма, която показва, претоварването на методите.

Тъй като тази програма има версия на F на метод (), който е като тип параметър байт. След това е на повикване (байт) и автоматично преобразуване на тип тип байт вътр не се случва, когато този метод се нарича с аргумент от тип байт.

Метод претоварване поддържа полиморфизъм, защото това е един от начините за осъществяване на парадигмата на "един интерфейс. - набор от методи" За да стане ясно как и защо това е направено, е необходимо да се вземат предвид следните съображения: в езиците за програмиране, които не поддържат претоварване на методи, всеки метод трябва да има уникално име.

Но в някои случаи се нуждаете е удовлетворена, една и съща последователност на операциите на различни типове данни. Като пример, помислете за функция, която определя абсолютната стойност на.

В езици, които не поддържат претоварването на методите, е необходимо да се създадат няколко варианта на тази функция, имената, които се различават от най-малко един символ.

Така например, в езика С функция ABS () връща абсолютната стойност на тип Int, лаборатории () функция - абсолютната стойност на вида на дълга, както и фабрики () функция - абсолютната стойност на число с плаваща точка.

Това се обяснява с факта, че C не се поддържа от NE-regruzka и затова всяка от функциите трябва да има свое собствено име, въпреки че всички те изпълняват едни и същи действия. Това води до нео-pravdali усложнява процеса на писане на програми.

Предприемачът трябва не само да мислят за действия, извършени от функциите, но също така не забравяйте трите техните имена. Подобна ситуация не се среща в Java, защото всички методи, които се изчисли стойността на абсолютно имат едно и също име.

В стандартната Java библиотека за изчисляване-ТА на корема абсолютната стойност (осигурен е) метод. Нейната претоварване се извършва в този клас по математика за обработка на стойностите на всички числови типове.

Решението за това кои имена, но версията на корема на метод () трябва да бъде извикана, по време на работа на системата за Java получава въз основа на аргумента тип.

претовари основната ценност е, че тя осигурява достъп до свързани с групи, методи СИ, с общо име. Следователно, корема име означава общото действие да се извърши, като компилатора избира едно специфично изпълнение на метода на ОВ обстоятелство.

Благодарение на полиморфизъм на няколко имена са намалени до един. Въпреки простотата на описания пример демонстрира го получили-CIP полиморфизъм може да се разшири, за да разбера как да се претовари Моган сделка с по-сложни ситуации в програмирането.

Когато един метод е претоварена, неговата всяка версия може да изпълнява всеки желан деи Следствие. За да се установи връзка с претоварени методи съществуват някои строги правила, но от гледна точка на правилното програмиране стил метод претоварване на предполага подобна връзка. Следователно, за да използвате същото име не бива да е свързано помежду си методи, въпреки че е възможно.

Например, измерва пл име може да се откажете за методи, които връщат на площада и да намира квадратен корен, който с плаваща запетая. Но това е фундаментално различен операции.

Такова използване на претоварването на методите противоречи на нейното оригинално naznacheniyu.Na практика трябва да претовари само тясно свързани операции.

Заслужава да се отбележи, че, Java програмисти често използват термина подпис. Какво е това?

По отношение на езика Java подпис означава име на метод, както и списък на неговите пара-метри. Когато претоварване методи следното правило: не две IU-Тода от един клас не може да има същия подпис.

Все пак трябва да се има предвид, че подписът не включва типа на връщане, тъй като тя не се използва в Java, когато се решава на претоварване.