Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Проблема доступа к методам элемента массива


Автор: ivaaan 30.11.2007, 22:30
Добрый вечер!

Имеется следующий код:
Код


Product items[] = {box, table, toy};

for (int i = 0; i < items.length; i++) {
            orderInfo(items[i]);
            if (items[i] instanceof SuperProduct){
               // System.out.println(items[i].getBonusMessage());                
            }
}


где: box, table -- классы, имплементирующие интерфейс Product, toy -- класс, имплементирующий интерфейс SuperProduct (SuperProduct extends Product, добавляя метод getBonusMessage() ).
Метод orderInfo() просто использует все методы класса, заложенные в Product.
Вопрос: как доступится к методу, добавленному в SuperProduct, если item[i] -- instanceof SuperProduct?

Автор: Kangaroo 30.11.2007, 22:41
Цитата(ivaaan @  30.11.2007,  21:30 Найти цитируемый пост)
как доступится к методу, добавленному в SuperProduct, если item[i] -- instanceof SuperProduct? 

Нужно прикастить элемент массива к SuperProduct:
Код

Product items[] = {box, table, toy};

for (int i = 0; i < items.length; i++) {
            orderInfo(items[i]);
            if (items[i] instanceof SuperProduct){
                System.out.println(((SuperProduct)items[i]).getBonusMessage());                
            }
}

Автор: ivaaan 30.11.2007, 22:57
Kangaroo, Ок, спасибо! Как это я не догадался  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)