#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)
Комментариев нет:
Отправить комментарий