Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.11.2015, 16:34
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 11  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от udaaff Посмотреть сообщение
Не верная метафора крыша/стены. Дочерний класс строит не крышу, а вносит свои изменения и дополнения в строй материалы и методы их использования для построения этих самых стен. Крыша не является стеной, наследуюясь от стены, она бы являлось таковой. Более того, запись нескольких значений, никак не влияет на построение стен, значения относятся только к наследнику, что не расходится даже с твоей метафорой. Поэтому не убедил меня твой довод .
Ее можно трактовать так: суперкласс строит дом без крыши, в котором модно жить, а наследник добавляет ему нувые функции, например защиту от дождя в виде крыше.
Не должен подкласс создаваться раньше суперкласса. Как тебе еще такая метафора: "потомок рождается раньше предка, потому что ему нужны новые черты лица, которых у предка не было") Она сюда подходит как нельзя лучше. Даже названия те же)
Цитата:
С тем же успехом адоби может вообще отказаться от обратной совместимости.Программист опасная профессия =)
Это не повод делать все задом наперед)

Старый 07.11.2015, 17:10
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 12  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Ты рассуждаешь о композиции, а не о наследовании. Когда кот мурзик рождается на свет, то это одно целое - кот. Он не выходит по частям: сначала появилось некое животное, а потом к нему приклеили усы и хвост. Нет это просто кот, он не рождается позже или раньше кого-то, он сам по себе. И являясь животным, при этом он обладает своими собственными свойствами и поведением, которое у "базового животного" может отличаться или отсутствовать. Поэтому кот, как целое, волен вызывать суперконструктор, исходя из своего собственного поведения. В конце концов конструктор - это тот же метод как и прочие. А если переопределив какой-то метод нам необходимо вызвать внутри этого метод супер версию, то мы обязаны, следую твоей логике, делать этот вызов исключительно вначале? Или, все же исходя из того, какое поведение тебе нужно получить?

upd: Другое дело, что до рождения кота, мы не можем его заставить ходить или мяукать, поэтому нет смысла вызывать мяу(), до того как кот будет создан, но сам процесс создания мы можем контролировать.


Последний раз редактировалось udaaff; 07.11.2015 в 18:01.
Старый 07.11.2015, 18:52
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 13  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
udaaff, можешь привести пример "необходимых перед вызовом super()" действий?
__________________
Поймай яблоко 2!

Старый 07.11.2015, 18:54
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 14  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
http://www.flasher.ru/forum/showpost...71&postcount=6

Старый 07.11.2015, 19:00
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 15  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
http://www.flasher.ru/forum/showpost...67&postcount=4
__________________
Поймай яблоко 2!

Старый 07.11.2015, 19:08
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 16  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Чем тебя пример не устраивает?

Старый 07.11.2015, 20:04
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 17  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Тем, что он какой-то нелепый. Независимо от того, что ты хочешь переопределить, все равно будет вызван super() и родительский init(). Таким образом никакой необходимости делать что-то до super() все еще не видно.
__________________
Поймай яблоко 2!

Старый 07.11.2015, 20:11
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 18  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Речь идет о переопределенном методе init().

Код AS3:
class SuperClass
{
    public function SuperClass()
    {
        super();
        init();
    }
 
    protected function init():void
    {
 
    }
}
 
class SubClass extends SuperClass
{
    public function SubClass(param:*)
    {
        _param = param;
        super();
    }
 
    private var _param:*;
 
    override function init():void
    {
        super.init();
        trace(_param);
    }
}

Старый 07.11.2015, 21:29
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 19  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А такой пример?
Код AS3:
	public class ConfirmWindow extends NativeWindow 
	{
		private var _windowOptions:NativeWindowInitOptions;
 
		public function ConfirmWindow(message:String) 
		{
			_windowOptions = new NativeWindowInitOptions();
			_windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD;
			_windowOptions.type = NativeWindowType.UTILITY;
			_windowOptions.resizable = false;
 
			super(_windowOptions);
 
			//...
__________________
Reality.getBounds(this);

Старый 07.11.2015, 21:54
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 20  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от udaaff Посмотреть сообщение
Речь идет о переопределенном методе init().
Мне кажется, или при new SubClass() не будет никакого трейса?
А вот Wolsh привел хороший пример, да.
__________________
Поймай яблоко 2!

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.