#c_sharp #net #наследование
Здравствуйте. Зачем когда мы создаем какой-нибудь конструктор в базовом классе, обязательно
надо создать еще и конструктор по-умолчанию, в противном случае не получается создавать
объект унаследованного класса. Например, если в этом коде попытаемся комментировать
конструктор по-умолчанию, выдается ошибка
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();
}
}
Ответы
Ответ 1
На самом деле не обязательно. При конструировании объекта производного класса мы обязаны вызвать конструктор базового и если вы не указываете какой конкретно конструктор нужно вызвать, то компилятор по умолчанию ищет конструктор без параметров. Конкретно ваш код скомпилируется, если написать, например, так: public two(int age, string name, string position) : base(1)
Комментариев нет:
Отправить комментарий