Здравствуйте. Зачем когда мы создаем какой-нибудь конструктор в базовом классе, обязательно надо создать еще и конструктор по-умолчанию, в противном случае не получается создавать объект унаследованного класса. Например, если в этом коде попытаемся комментировать конструктор по-умолчанию, выдается ошибка
using System;
class one
{
private int ID;
//public one() { }
public one(int ID)
{
this.ID = ID;
}
}
class two : one
{
int age;string name, position;
public two(int age, string name, string position)
{
this.age = age;
this.name = name;
this.position = position;
}
public void show()
{
Console.WriteLine(name + " " + position + " " + age);
}
}
class consoleapp
{
static void Main()
{
two obj = new two(25,"Shamil", "IT");
obj.show();
Console.ReadKey();
}
}
Ответ
На самом деле не обязательно.
При конструировании объекта производного класса мы обязаны вызвать конструктор базового и если вы не указываете какой конкретно конструктор нужно вызвать, то компилятор по умолчанию ищет конструктор без параметров.
Конкретно ваш код скомпилируется, если написать, например, так:
public two(int age, string name, string position) : base(1)
Комментариев нет:
Отправить комментарий