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

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

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

Регистрация: Mar 2009
Сообщений: 65
Attention Реализация двух интерфейсов с одинаковым названием метода

Есть один интерфейс:
Код AS3:
package testttttt
{
public interface IA
{
 
    function a():int;
    function b():void;
}
}
Второй интерфейс:
Код AS3:
package testttttt
{
public interface IB
{
    function a():void;
    function c():void;
}
}
Я хочу их обоих реализовать в каком то классе.
Код AS3:
package testttttt
{
   public class ClassAB implements IA, IB
   {
        ...
   }
}
{
Как можно это сделать и можно ли вообще?

Старый 11.08.2011, 18:09
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 2  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Думаю, что нельзя. Это своего рода перегрузка, как в Java. В ActionScript, я такого не встречал.

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

Регистрация: Apr 2010
Сообщений: 219
переименовать один из методов а в ё

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Код AS3:
public interface IA
{
    function a():int;
}
...
public interface IB extends IA
{
    function b():void;
}
...
public interface IC extends IA
{
    function c():int;
}
...
public class ClassAB implements IB, IC
{
        ...
}
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 11.08.2011, 18:45
arkadattx вне форума Посмотреть профиль Отправить личное сообщение для arkadattx Найти все сообщения от arkadattx
  № 5  
Ответить с цитированием
arkadattx

Регистрация: Apr 2010
Сообщений: 219
alatar, в его примере они возвращают разные значения, поэтому такой вариант не подойдет

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Не заметил. Тогда только переименовать. Как уже было сказано, перегрузки в AS3 нет.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 11.08.2011, 18:54
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 7  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Какой-то быдлокод получается ) .
Если 2 интерфейса сожержат одинаковые методы, то проблем и так не будет, но в этом случае проблему действительно вызовут разные типы возвращаемых значений.
Цитата из Колина Мука
Цитата:
If a class implements
two interfaces that define a method by the same name, but with different signatures
(i.e., method’s name, parameter list, and return type), the compiler generates an
error indicating that one of the methods was not implemented properly.
If, on the other hand, a class implements two interfaces that define a method by the
same name and with the exact same signature, no error occurs. The real question is
whether the class can provide the services required by both interfaces within a single
method definition. In most cases, the answer is no.

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

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Может возможно сделать базовый интерфейс с методом а(), от которого будут наследоваться IA и IB? Автор, как там по смыслу?
---
Стормозил. Про разные типы вывалилось из головы.

Старый 11.08.2011, 19:17
Gogan вне форума Посмотреть профиль Отправить личное сообщение для Gogan Найти все сообщения от Gogan
  № 9  
Ответить с цитированием
Gogan

Регистрация: Mar 2009
Сообщений: 65
В общем понятно. Спасибо.
У меня не стояло никогда такой проблемы. Просто возникла такая идея : "а что если ? ...". Ну теоретически то это возможно, когда например юзаешь два движка ... .

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

Регистрация: Apr 2010
Сообщений: 219
package-ы в 99% случаев будут отличаться - тогда просто пишется путь к нужному классу с указанием package-а

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

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

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


 


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


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