2012-04-12 2 views
0

Итак, у меня есть класс, который происходит от GameComponent. Внутри класса этот метод присутствует:Переопределение методов без реализации

public override void Initialize(){ 
    base.Initialize(); 
} 

Я видел несколько источников, где люди делают то же самое, они переопределяют метод Initialize, но не имеют реализации, кроме base.Initialize вызова, конечно. Я не понимаю этого, потому что почему есть метод, если он ничего не делает? Если вы не включите метод переопределения, виртуальный метод внутри класса GameComponent будет вызван по умолчанию правильно? Я буквально вынул весь метод и ничего не произошло.

Чтобы положить это короткое, что является пунктом переопределения методов, которые не имеют реализации?

ответ

0

Да, то, что вы показываете, в точности эквивалентно тому, что оно не отменено вообще; Решайер на самом деле предлагает исключить такой метод, поскольку это ненужный беспорядок.

Чтобы быть техническим, переопределяя его и просто вызывая базовый метод, это не «нет реализации», это реализация по умолчанию, или никакой дополнительной реализации. Нет реализация не будет overridding, а затем прикрывать метод:

public override void Initialize() 
{ 
    // no implementation 
} 

Вы не хотели бы сделать это в этом случае, но бывают случаи, когда вы можете захотеть.

0

Отсутствует.

Причина заключается в том, что шаблон GameComponent включает его, чтобы он рассказывал вам о том, как следует внедрять.

Смежные вопросы