Страницы

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

понедельник, 30 декабря 2019 г.

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

#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)

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

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