Verificar atributo de uma subclasse

Eu me deparei com essa situação, mas não sei como lidar da maneira certa:

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

Estou salvando os objetos Myclass em um arraylist e depois iterarei por essa lista:

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

O problema aqui é: a classe pai Myclass não conhece o atributo awesomeStuff (e não deveria porque esse é um recurso que vem somente com a classe derivada). Mas como posso gerenciar isso? O problema é que o arraylist contém elementos Myclass e MyclassWithAwesomeStuff e o loop foreach os lança sempre para Myclass.

Eu me pergunto se isso é um fracasso de design?

//EDITAR:

Ok, para tornar minha pergunta um pouco mais tangível, aqui mais infos. Estou tentando construir uma pequena cafeteria:

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

Estou salvando os itens de café em uma lista de matriz:

ArrayList<Coffee> coffees = new ArrayList<Coffee>();

Portanto, nesta lista de matrizes existem objetos de café normais e objetos de mistura de café. Agora quero exibir todos os objetos de mistura de café, que são agitados:

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

Como eu posso ver nas respostas / comentários: o exemplo parece ser uma má idéia, porque atrapalha a idéia por trás e uma interface que ambas as classes implementam também é uma má ideia, porque um café normal não pode ser abalado. Então, como lidar com isso?

questionAnswers(3)

yourAnswerToTheQuestion