Sì, ma quello non lo puoi fare.
Tu hai istanziato un oggetto della classe "classe1" e non un oggetto della classe "classe2".

Un conto è avere un oggetto di classe "classe2", referenziato da una variabile dichiarata di tipo "classe1" (ed è lecito, per l'ereditarietà), di cui si desidera usare un metodo proprio della "classe2"... questo si fa con un cast, che va prima testato (deve essere lecito):

codice:
Animale a = new Uomo();
if (a instanceof Uomo) {
   // Lo posso fare perchè
   // 1) Ho effettuato il test ed ha dato esito positivo
   // 2) a1 è effettivamente un Uomo
   ((Uomo) a).guida();
}
Una cosa ben diversa è ciò che stai cercando di fare tu.

codice:
Animale b = new Animale();   // Questo non è un Uomo e non potrà mai guidare!!!
if (b instanceof Uomo) {
   // Qui non entrerò mai perchè a2 non è un uomo, ma un animale qualunque
   // (potrebbe essere tranquillamente una gallina)
   ((Uomo) b).guida();
}
Ciao.