Middle
85
questionbank
Что можно изменить при перегрузке методов или операторов?
AI答案
sobes.tech AI
При перегрузке можно изменять:
- Список параметров: количество, порядок или типы параметров.
- Тип возвращаемого значения: может отличаться (для методов). Для операторов тип возврата определяет семантику операции.
- Модификаторы доступа: могут отличаться.
Нельзя изменять:
- Только тип возвращаемого значения (без изменения списка параметров).
- Только модификаторы доступа (без изменения списка параметров).
Пример перегрузки методов на Java:
class Calculator {
// Перегрузка метода add: int + int
public int add(int a, int b) {
return a + b;
}
// Перегрузка метода add: double + double
public double add(double a, double b) {
return a + b;
}
// Перегрузка метода add: int + int + int
public int add(int a, int b, int c) {
return a + b + c;
}
}
Пример перегрузки оператора "+" на C++ для пользовательского класса:
class Vector {
public:
int x, y;
Vector(int x = 0, int y = 0) : x(x), y(y) {}
// Перегрузка оператора +
Vector operator+(const Vector& other) const {
return Vector(x + other.x, y + other.y);
}
};
Таблица сравнения исходного и перегруженного метода (пример):
| Аспект | Исходный метод add(int a, int b) |
Перегруженный метод add(double a, double b) |
|---|---|---|
| Имя метода | add |
add |
| Параметры | int a, int b |
double a, double b |
| Количество | 2 | 2 |
| Типы | int, int | double, double |
| Возвращаемый тип | int | double |
| Модификатор | public | public |