我对Java语言中的类型转换存在误解。问题出在ClassCastException上。例如,在以下代码中,假设Animal是Dog类的父类:
Animal animal = new Animal(); Dog dog = (Dog) animal;
执行后会抛出ClassCastException异常。然而,在学习Android包时,我发现了一个关于类型转换的示例,该示例应该会抛出ClassCastException(考虑到Java示例)
EditText editText = (EditText) findViewById(R.id.edit_message);
在这段代码中,findViewById方法返回一个View类对象,该对象是EditText类的超类之一。从android.view.View到android.widget.EditText。代码可以正常运行。有人能解释一下是我犯了错误还是怎么回事吗?
提前感谢。