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

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

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

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

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<Coffee> coffees = new ArrayList<Coffee>();

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

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

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

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

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