Возраст должен быть между 0 и 200 годами

Иванов А.П.

Public class HumanDemo

Else

if (HumanAge!= value)

{ HumanAge = value; // Сохранение значения в поле

// Рассылка события смены возраста

// AgeChanged(HumanAge);

}

}

}

public void OutputName() // Определение метода вывода имени

{ Console.WriteLine(HumanName);

}

}

{ // private void SomeNameChanged(string name)

// { // Обработка события смены имени

// Console.WriteLine("Имя изменено на " + name);

// }

// private void SomeAgeChanged(short age)

// { // Обработка события смены возраста

// Console.WriteLine("Возраст изменен на " + age.ToString());

// }

static void Main() // Точка входа в программу

{ Human h = new Human(); // Создание экземпляра класса

// (объекта)

// Регистрация обработчиков двух событий

// AddHandler h.NameChanged, AddressOf SomeNameChanged

// h.NameChanged += new EventHandler(SomeNameChanged);

// AddHandler h.AgeChanged, AddressOf SomeAgeChanged

// h.AgeChanged += new EventHandler(SomeAgeChanged);

h.Name = "Иванов А.П."; //?Вызывает обработку события

// изменения имени

h.OutputName(); // Вывод имени

h.Age = 25; //?Вызывает обработку события

// изменения возраста

Console.WriteLine(h.Age); // Вывод возраста

h.Age = 25; // Не вызывает обработку события,

// т.к. возраст не изменился

h.Age = -20; // Не вызывает обработку события,

// т.к. возраст не может быть

// отрицательным. Выводит сообщение

Console.WriteLine(h.Age); // Вывод возраста. Результат тот же

Console.ReadLine(); // Ожидание нажатия клавиши <Enter>

}

}

}

/* Вывод:

? Имя изменено на Иванов А.П.

? Возраст изменен на 25

*/

2. Наследование (MSDN_ООП_VB+C#_2010)

Наследование позволяет создавать новые классы, которые повторно используют, расширяют и изменяют поведение, определенное в другом классе. Класс, члены которого наследуются, называется базовым классом, а класс, который наследует эти члены, называется производным классом. Следует учитывать, что все классы в C# и Visual Basic неявно наследуются от класса Object, который поддерживает иерархию классов.NET и предоставляет низкоуровневые службы для всех классов.

Примечание. Управляемые языки в.NET Framework не поддерживают множественное наследование, т.е. можно задать только один базовый класс для производного класса.

Наследование от базового класса:

class DerivedClass:BaseClass{}

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

Указание, что класс не может использоваться в качестве базового класса:

public sealed class A {}

Указание, что класс может использоваться только в качестве базового класса и нельзя создать экземпляр этого класса:

public abstract class B {}

Переопределяющие члены.

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

Следующие модификаторы используются для управления переопределением свойств и методов.

Модификатор Visual Basic Модификатор C# Определение
Overridable (Visual Basic) virtual (Справочник по C#) Разрешает переопределение члена класса в производном классе.
Overrides (Visual Basic) override (Справочник по C#) Переопределяет виртуальный (переопределяемый) член в базовом классе.
NotOverridable (Visual Basic) Не поддерживается Запрещает переопределение члена в наследующем классе.
MustOverride (Visual Basic) abstract (Справочник по C#) Требует, чтобы член класса был переопределен в производном классе.
Shadows (Visual Basic) Модификатор new (Справочник по C#) Скрывает член, наследуемый от базового класса

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: