У меня есть три класса: CookedItem
: ConsomableItem
: Item
C# архитектура inheritage переопределяет другую подпись?
Item
реализует этот метод:
protected void Initialize(string name,TypeItem type) {...}
ConsomableItem
реализует этот метод:
protected void Initialize(float duration,string name,TypeItem type) {...}
Теперь вот моя проблема. Правильный метод для вызова CookedItem
- ConsomableItem.Initialize()
.
Могу ли я скрыть метод Item.Initialize() to only see the method
ConsomableItem.Initialize() `?
Я не могу использовать override
, потому что подписи разные.
Любое предложение?
Для этого вы должны использовать конструкторы? –
Нет - 'CookedItem' является' ConsomableItem' и косвенно 'Item', поэтому он имеет права на обе функции. –
Я не могу использовать конструкторы, потому что я использую Unity, но спасибо за предложение – CrymX