Перегруженные методы
В одном классе может быть определено несколько методов с одним именем, но с разным составом параметров по количеству, типам, способу передачи аргументов. Такие методы называются перегруженными.
Перегруженные методы используются в составе классов для опреде- ления однотипных по функциональному назначению операций, реали- зуемых по-разному.
Выяснение конкретного метода, который будет реально вызван, производится на этапе трансляции по следующей схеме:
1. Вызывающий метод – это тот метод, который совпадает с вы- зовом по имени, количеству и типу параметров.
2. Если такого метода нет, вызывается метод, который совпадает с вызовом по имени и количеству параметров, при этом аргу- менты могут быть преобразованы к типу параметров без поте- ри информации
3. Если такого метода нет, фиксируется ошибка.
Пример
Определить класс, описывающий понятие точка, методы, реали- зующие операции:
- Установка точки на числовой оси
- Установка точки на плоскости
- Установка точки в трехмерном пространстве
- Вычисление расстояния от точки до начала координат
class Точка
{
private double x, y, h;
//установка точки на прямой
public void Set(double xp)
{
x = xp; y = 0; h = 0;
}
//установка точки на плоскости
public void Set(double xp, double yp)
{
x = xp; y = yp; h = 0;
}
//установка точки в пространстве
public void Set(double xp, double yp, double hp)
{
x = xp; y = yp; h = hp;
}
//вычисление расстояния
public double Dist()
{
return Math.Sqrt(x * x + y * y + h * h);
}
}
class Program
{
public static void Main()
{
double d; //расстояние Точка тчк = new Точка();
тчк.Set(2.0); //будет вызван первый Set() d=тчк.Dist(); // d=2.0
тчк.Set(3.0,4.0); //будет вызван второй Set() d=тчк.Dist(); // d=5.0
тчк.Set(2,3,6); //будет вызван третий Set
d=тчк.Dist(); // d=7.0
}
}
Перегруженные методы не различаются по типу возвращаемого значения.
© ООО «Знанио»
С вами с 2009 года.