|
|
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Предназначение super()
Всем привет. Вот встал вопрос. Объясните предназначение суперкласса в проектах? Ну и что, что он вызывает родительскую версию конструктора, но собственно для чего? Какой смысл?
|
|
|||||
Регистрация: Jul 2014
Сообщений: 42
|
В ActionScript 3, super можно вызывать в любом месте конструктора. Например
package { public class SubClass extends SuperClass { protected var value:int; public function SubClass(value:int = 0) { this.value = value; super(20); } } } При перекрытии имеет значение. Перекрытием (overriding) называется переопределение метода в классе, который в противном случае был бы унаследован. Новый метод будет использоваться вместо унаследованного (хотя унаследованный метод остается доступен с использованием super). |
|
|||||
Цитата:
Не всегда. Например если поставить throw перед вызовом конструктора суперкласса, то эту конструкцию он не пропустит. Поэтому лучше всегда ставить super() первым делом. Тем более что во многих других языках, он обязательно должен быть в самом начале, не надо вырабатывать плохую привычку |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
|
|
|||||
Цитата:
Да и, повторюсь, это невозможно сделать во многих других языках. Зачем привыкать делать не правильно? |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Пример: В суперконструкторе вызывается протектед метод init(). В наследнике в конструктор передаются параметры, которые я хочу использовать в переопределенном методе init(). |
|
|||||
Цитата:
А не правильный такой подход исходя из чистой логики. Как с домом, ты пытаешься крыть крышу, не построив стены |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Всем спасибо за ответы, частично разобрался)
|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Не верная метафора крыша/стены. Дочерний класс строит не крышу, а вносит свои изменения и дополнения в строй материалы и методы их использования для построения этих самых стен. Крыша не является стеной, наследуюясь от стены, она бы являлось таковой. Более того, запись нескольких значений, никак не влияет на построение стен, значения относятся только к наследнику, что не расходится даже с твоей метафорой. Поэтому не убедил меня твой довод
Цитата:
|
|
|||||
Цитата:
Не должен подкласс создаваться раньше суперкласса. Как тебе еще такая метафора: "потомок рождается раньше предка, потому что ему нужны новые черты лица, которых у предка не было") Она сюда подходит как нельзя лучше. Даже названия те же) Цитата:
|
Часовой пояс GMT +4, время: 14:23. |
|
« Предыдущая тема | Следующая тема » |
|
|