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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.12.2010, 15:45
shaman4d вне форума Посмотреть профиль Отправить личное сообщение для shaman4d Найти все сообщения от shaman4d
  № 1  
Ответить с цитированием
shaman4d
 
Аватар для shaman4d

Регистрация: Jun 2008
Сообщений: 205
По умолчанию Меотды обязательные к имплементации

Как сделать так чтобы наследник базового класса, например BaseObject'а в обязательном порядке должен был перегрузить некоторые методы и это возможно было бы проверять на этапе компиляции? Иными словами это как если сделать имплементацию интерфейса, только интерфейс используется в базовом классе.

Старый 04.12.2010, 15:55
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Никак. Только на этапе исполнения с RTE.

Перегрузка подразумевает изменение сигнатуры. Перегрузки в AS3 нет.

Старый 04.12.2010, 16:12
shaman4d вне форума Посмотреть профиль Отправить личное сообщение для shaman4d Найти все сообщения от shaman4d
  № 3  
Ответить с цитированием
shaman4d
 
Аватар для shaman4d

Регистрация: Jun 2008
Сообщений: 205
Т е получается что для каждого наследника мне придется помнить что нужно указать какой интерфейс он должен имплементировать?

Старый 04.12.2010, 16:26
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Нет, ничего ненужно. BaseClass implements IBase, наследник BaseClass тоже будет IBase.

Старый 04.12.2010, 16:48
shaman4d вне форума Посмотреть профиль Отправить личное сообщение для shaman4d Найти все сообщения от shaman4d
  № 5  
Ответить с цитированием
shaman4d
 
Аватар для shaman4d

Регистрация: Jun 2008
Сообщений: 205
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Нет, ничего ненужно. BaseClass implements IBase, наследник BaseClass тоже будет IBase.
Угу только в IBase я определю метод для имплементации show(), в BaseClass я буду вынужден этот метод имплементировать (иначе компилятор ругнется), а наследнику этот уже имплементированный метод достанеся в наследство и никто не "напомнит" его в наследнике переопределить. Вопрос именно в этом принудить программиста в наследниках переопределять методы доставшиеся от базового класса.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Зачем наследовать класс, если ничего наследовать от него не нужно (мысли вслух).
__________________
Reality.getBounds(this);

Старый 04.12.2010, 18:02
shaman4d вне форума Посмотреть профиль Отправить личное сообщение для shaman4d Найти все сообщения от shaman4d
  № 7  
Ответить с цитированием
shaman4d
 
Аватар для shaman4d

Регистрация: Jun 2008
Сообщений: 205
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Зачем наследовать класс, если ничего наследовать от него не нужно (мысли вслух).
Затем что это абстрактный класс. Но вам, как я понял ничего об этом неизвестно.

Старый 04.12.2010, 18:09
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 8  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от shaman4d Посмотреть сообщение
Т е получается что для каждого наследника мне придется помнить что нужно указать какой интерфейс он должен имплементировать?
чтоб на этапе компиляции контролировать - да
__________________
freelance | Раздор

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Но вам, как я понял ничего об этом неизвестно.
1) Каюсь, моя служба разведки действительно не успела доложить, что Вы планируете этот класс как абстрактный. Мне действительно ничего об этом не было известно.
2) Странное дело.. Даже если бы разведка успела - я все равно задал бы этот вопрос. Абстрактный класс предполагает невозможность создания экземпляра (Delphi с их оригинальным взглядом "можно, но вызовет ошибку" в расчет не берем, да). Какое отношение это имеет к Вашему вопросу? В определении Абстрактного класса нигде не сказано, что он НЕ ДОЛЖЕН содержать реализаций. Он МОЖЕТ не содержать реализаций (как и любой другой класс). То, о чем пишете Вы - Интерфейс в чистом виде. Именно он "потребует" создать нужные методы в "наследниках" и явно напомнит об этом на этапе компиляции. Да Вы и сами это отлично понимаете, так что вопрос так и остался в силе.
__________________
Reality.getBounds(this);

Старый 04.12.2010, 20:58
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 10  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Именно он "потребует" создать нужные методы в "наследниках" и явно напомнит об этом на этапе компиляции.
только если наследники реализуют этот интерфейс, правильно? То есть в каждом классе наследника должно быть - implements IBase.
__________________
freelance | Раздор

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

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

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


 


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


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