Проверьте атрибут подкласса

Я наткнулся на эту ситуацию, но я нене знаю, как с этим справиться правильно: я

class Myclass { }
class MyclassWithAwesomeStuff extends Myclass {
    public boolean awesomeStuff;
}

m сохраняем объекты Myclass в массиве списков и повторяем этот список позже:

for(Myclass m : list) {
    //here I want to check if awesomeStuff is true, in case it is a MyclasswithAwesomeStuff
}

Проблема здесь в том, что родительский класс Myclass нене знает атрибут awesomeStuff (и это не должнот, потому что это функция, которая поставляется только с производным классом). Но как я могу справиться с этим? Проблема в том, что массив содержит элементы Myclass и MyclassWithAwesomeStuff, и цикл foreach всегда приводит их к Myclass.

Интересно, это провал проекта?

//РЕДАКТИРОВАТЬ:

Хорошо, чтобы сделать мой вопрос немного более осязаемым, здесь больше информации. Я'я пытаюсь построить небольшую кофейню: я

class Coffee { }
class CoffeeMix extends Coffee {
    public boolean shaken;
}

Сохранение элементов кофе в списке массивов:

ArrayList coffees = new ArrayList();

Таким образом, в этом списке массивов есть обычные объекты кофе и объекты кофейной смеси. Теперь я хочу отобразить все объекты кофейной смеси, которые потрясены:

for(Coffee c : coffees) {
    //here is the same problem as above
}

Как я вижу из ответов / комментариев: instanceof кажется плохой идеей, потому что он порождает идею, лежащую в основе oo up, и интерфейс, который реализуют оба класса, тоже плохая идея, потому что нормальный кофе не может быть потрясен. Так как с этим справиться?

Ответы на вопрос(3)

Ваш ответ на вопрос