Я пишу абстрактный базовый класс. Я хочу, чтобы все классы, наследуемые от него, наследовали конструктор, который в основном делает то же самое для всех классов. Это возможно?Как наследовать конструктор из подкласса
ответ
В производных классах конструктора, вам нужно будет назвать базовый конструктор так:
base(param1,param2,...)
Если вы не вызывать базовый конструктор явно, конструктор по умолчанию в базовом классе будет называться, если один существует. Если нет, вы получите ошибку компиляции.
Doing ваш конструктор защищен будут делать то набить
public abstract class A
{
protected A(string v) { V = v; }
public string V { get; protected set; }
}
public class AA : A
{
public AA(string v) : base (v) {}
}
Если абстрактный базовый класс имеет конструктор по умолчанию (т.е. конструктор без параметров), она будет автоматически вызываться производными классами конструкторами, если не они явно вызовет другой конструктор базового класса.
abstract class B
{
protected B()
{
...
}
protected B(object foo)
{
...
}
}
class D : B
{
public D()
: base() // not actually necessary, since it's called implicitly
{
}
public D(object foo)
: base(foo)
{
}
}
Возможно, вы можете выполнить ответ с требованиями к производному классу, если базовый класс не имеет конструктора по умолчанию –
- 1. Как реализовать конструктор подкласса?
- 2. Конструктор подкласса
- 3. Конструктор подкласса Java из суперкласса
- 4. Пользовательский конструктор подкласса NSManagedObject
- 5. Конструктор подкласса неправильный __init__
- 6. Конструктор подкласса не компилируется
- 7. Java конструктор подкласса
- 8. Java-конструктор подкласса
- 9. конструктор подкласса в Java
- 10. Actionscript - вызвать конструктор подкласса из базового класса
- 11. Как наследовать конструктор от суперкласса к подклассу
- 12. получить конструктор подкласса в суперкласс
- 13. Конструктор подкласса с дополнительными атрибутами
- 14. Python Django - models.Model конструктор подкласса
- 15. Java-конструктор подкласса абстрактного класса
- 16. Как заставить мой конструктор подкласса не вызывать конструктор базового класса?
- 17. Наследованный член-конструктор Java-подкласса
- 18. Как заставить конструктор вернуть объект подкласса
- 19. Как вызвать конструктор подкласса только в Наследовании
- 20. Как передать объект суперкласса в конструктор подкласса?
- 21. Как вставить код из конструктора подкласса в конструктор суперкласса?
- 22. как писать и наследовать от абстрактного подкласса ActionController :: TestCase
- 23. Как наследовать статическое свойство с уникальным значением для каждого подкласса?
- 24. Конструктор базы вызовов с разными аргументами, чем конструктор подкласса
- 25. Как наследовать переменную из родительского класса?
- 26. Наследовать и использовать конструктор суперкласса в javascript
- 27. C++ - конструктор суперкласса, создающий экземпляр подкласса
- 28. конструктор копирования для baseclasspointer для подкласса
- 29. Вызов суперкласса из подкласса
- 30. конструктор подкласса Список <T> C#
Я думаю, что ОП пытается избежать реализации конструктора с той же подписью. Вы не можете наследовать конструкторы в C#. звоните только из базы (как и в вашем коде) –
Лично я считаю, что это один из самых больших сбоев в C#. Каждый публичный метод, объявленный в базовом классе, автоматически используется в производных классах, но все конструкторы должны быть явно определены. Я проклинаю команду C# каждый раз, когда мне приходится писать тот же конструктор, который просто вызывает базовую реализацию. – adelphus