В некоторых языках, например, в Ruby, методом класса initialize
, используемым для инициализации новых объектов, нельзя напрямую вызвать в дочернем классе super.initialize
для выполнения логики родительского класса. Вместо этого, дочерний класс должен своей реализацией initialize
явным образом вызвать метод super
, который автоматически вызывает метод initialize
родительского класса.
В других языках, например, в Java или C#, нет "непереопределяемых" пользовательских методов в том смысле, что любой публичный или защищенный (!) метод, не помеченный как final
(Java) или sealed
(C#), может быть переопределен. Однако, можно считать, что конструкторы являются особым типом "метода", который нельзя переопределить в привычном смысле - нельзя объявить метод с тем же именем и сигнатурой внутри дочернего класса, который бы заменя
В некоторых языках, например, в Ruby, методом класса initialize
, используемым для инициализации новых объектов, нельзя напрямую вызвать в дочернем классе super.initialize
для выполнения логики родительского класса. Вместо этого, дочерний класс должен своей реализацией initialize
явным образом вызвать метод super
, который автоматически вызывает метод initialize
родительского класса.
В других языках, например, в Java или C#, нет "непереопределяемых" пользовательских методов в том смысле, что любой публичный или защищенный (!) метод, не помеченный как final
(Java) или sealed
(C#), может быть переопределен. Однако, можно считать, что конструкторы являются особым типом "метода", который нельзя переопределить в привычном смысле - нельзя объявить метод с тем же именем и сигнатурой внутри дочернего класса, который бы заменя
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.