Junior
რა უნდა განასხვავოს ორი მეთოდი, რათა ჩვენ მათ გადატვირთულად მივიჩნიოთ?
sobes.tech AI
პასუხი AI-სგან
ორი მეთოდი ითვლება გადატვირთულად, თუ ისინი პასუხობენ შემდეგ პირობებს:
- შეერთებული მეთოდის სახელი. მეთოდების სახელები უნდა იყოს ერთნაირი.
- მეთოდის განსხვავებული სიგნატურა. მეთოდის სიგნატურა მოიცავს მეთოდის სახელს და პარამეტრების ტიპების სიას (მათ რაოდენობას, წესრიგს და ტიპებს). მეთოდის დაბრუნების ტიპი არ არის სიგნატურის ნაწილი და არ ახდენს გავლენას გადატვირთვაზე.
მაგალითები:
class Example {
void print(int num) { // სიგნატურა: print(int)
System.out.println(num);
}
void print(String text) { // სიგნატურა: print(String)
System.out.println(text);
}
void print(int num, String text) { // სიგნატურა: print(int, String)
System.out.println(num + " " + text);
}
// ეს არ არის გადატვირთვა, რადგან სიგნატურა print(int) განმეორებითია
// int print(int num) {
// return num;
// }
}
გადატვირთვის მაგალითებს აჩვენებს ცხრილი:
| მეთოდის სახელი | პარამეტრების ტიპები | ერთნაირი / განსხვავებული მეთოდები | გადატვირთულია? | მიზეზი |
|---|---|---|---|---|
calc |
(int, int) |
განსხვავებული | დიახ | განსხვავებული სიგნატურა (რაოდენობა და ტიპები) |
calc |
(double, double) |
განსხვავებული | დიახ | განსხვავებული სიგნატურა (ტიპები) |
calc |
(int, int, int) |
განსხვავებული | დიახ | განსხვავებული სიგნატურა (რაოდენობა) |
calc |
() |
განსხვავებული | დიახ | განსხვავებული სიგნატურა (რაოდენობა) |
calc |
(int, int) |
ერთნაირი | არა | ერთნაირი სიგნატურა |
calculate |
(int, int) |
განსხვავებული | არა | მეთოდის სახელი განსხვავებულია |