Страницы

Поиск по вопросам

пятница, 14 декабря 2018 г.

Суть конструктора по-умолчанию в наследовании

Здравствуйте. Зачем когда мы создаем какой-нибудь конструктор в базовом классе, обязательно надо создать еще и конструктор по-умолчанию, в противном случае не получается создавать объект унаследованного класса. Например, если в этом коде попытаемся комментировать конструктор по-умолчанию, выдается ошибка
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)

Комментариев нет:

Отправить комментарий