Поля и свойства абстрактного класса в C#
Абстрактный класс не ограничивается списком
abstract-методов: в нем так же уместны
поля, свойства и обычные методы с телом.
Общее состояние удобно собрать в базе, чтобы
потомки не повторяли одни и те же члены.
Запишем User с приватным полем имени
и свойством для доступа:
abstract class User
{
private string name = "";
public string Name
{
get { return name; }
set { name = value; }
}
public abstract void IncreaseRevenue(int value);
}
class Employee : User
{
public int Salary;
public override void IncreaseRevenue(int value)
{
Salary += value;
}
}
Создадим сотрудника, зададим имя через свойство и выведем его методом базы:
var employee = new Employee();
employee.Name = "john";
employee.PrintName();
abstract class User
{
private string name = "";
public string Name
{
get { return name; }
set { name = value; }
}
public void PrintName()
{
Console.WriteLine(Name);
}
public abstract void IncreaseRevenue(int value);
}
class Employee : User
{
public int Salary;
public override void IncreaseRevenue(int value)
{
Salary += value;
}
}
Сделайте абстрактный класс User
с приватным полем name и свойством
Name.
Сделайте Employee и Student,
наследующие от User.
Добавьте в User метод PrintName
с телом. Создайте Employee
и Student, задайте имя
и вызовите у них PrintName.