Перегрузка методов и перегруженный конструктор

Умалчиваемый конструктор, как и любой другой метод класса, можно перегрузить. Перегрузка метода заключается в том, что в классе объявляется одноименный метод. Чтобы компилятор «понял», о каком методе идет речь, набор входных параметров перегруженного метода должен отличаться от параметров оригинального — это обязательное условие. При необходимости можно сколько угодно раз перегружать метод, лишь бы у всех перегруженных методов наборы входных параметров отличались друг от друга и от параметров оригинального метода.

Добавим в класс HelloClass два целочисленных поля intx и inty и перегрузим умалчиваемый конструктор для их инициализации (листинг 3.2, файл Ch03\HelloClass\Program.cs).

Листинг 3.2. Перегрузка умалчиваемого конструктора

using System;

class HelloClass

{

// Конструктор по умолчанию:

public HelloClass()

{

Console.WriteLine("Вызов умалчиваемого конструктора");

}

// Перегруженный конструктор:

public HelloClass(int x, int y)

{

Console.WriteLine("Вызов перегруженного конструктора");

intx = x;

inty = y;

}

// Объявляем новые поля класса:

public int intx, inty;

// Точка входа программы:

public static void Main()

{

HelloClass hc1 = new HelloClass();

Console.WriteLine("hc1.intx = {0}\nhc1.inty = {1}\n",

hc1.intx, hc1.inty);

HelloClass hc2 = new HelloClass(100, 200);

Console.WriteLine("hc2.intx = {0}\nhc2.inty = {1}\n",

hc2.intx, hc2.inty);

Console.ReadLine();

}

}

Для вывода сообщений в методе Main() используется форматирующая строка, то есть стока, в текст которой вставлены форматирующие символы. Подробнее о форматирующих символах говорится в главе 4.

Как видим, в результате работы умалчиваемого конструктора поля инициализируются нулями, в то время как перегруженный конструктор помещает в них нужные значения.

Предлагаю ознакомиться с аналогичными статьями: