Typecasting un objet de classe parent-enfant

J'ai un malentendu à propos de typecasting en langage Java. Le problème, c'est ClassCastException. Par exemple, dans ce code, en supposant que l'Animal est la classe mère de la classe Chien,

Animal animal = new Animal();
Chien chien = (Chien) animal;

jette ClassCastException après l'exécution.
Cependant, bien que l'étude de android paquets, j'ai trouvé un exemple sur typecasting qui devrait jeter un ClassCastException, considérant que java exemple.

EditText editText = (EditText) findViewById(R. id.edit_message);

Dans ce code, findViewById méthode renvoie un Vue de la classe de l'objet, qui est l'un des super-classes de EditText de la classe.(à partir de android.vue.Vue android.widget de.EditText) Le code fonctionne très bien. Quelqu'un pourrait-il expliquer si j'ai fait une erreur ou comment cela se passe?

Merci d'avance.

Si vous savez comment l'étiquette de cette question avec un polymorphism tag, vous savez comment faire pour rechercher le concept sur ce site ou ailleurs. Sérieusement, c'est trop basique. Recherche avant de poster.
La question n'est pas sur le polymorphisme mécanisme, je sais que l'exemple ne se composent de polymorphisme. La vraie question est à propos de la mise en œuvre android. Je sais pourquoi il donne l'exception et je vous demande de clarification de code android.
Il n'y a pas de "Android application". Le traitement d'un objet, comme son ancestrale parent est le cœur de polymorphisme, qui est l'aspect clé de la programmation orientée objet et, par conséquent, Java (et donc Android). Mon commentaire a essayé de vous dire, vous avez été trop rapide pour poster une telle question fondamentale qui aurait facilement pu être répondu à effectuer une recherche simple dans la ou de Google (ou de lecture developer.android.com en profondeur).

OriginalL'auteur mwb | 2014-08-07