将对象从父类类型转换为子类
2022-09-02 09:34:32
我对Java语言中的类型转换有误解。问题是ClassCastException。例如,在此代码中,假设 Animal 是 Dog 类的父类,
Animal animal = new Animal();
Dog dog = (Dog) animal;
执行后抛出 ClassCastException。然而,在研究Android软件包时,我发现了一个关于类型转换的例子,考虑到java的例子,它应该抛出一个ClassCastException。
EditText editText = (EditText) findViewById(R.id.edit_message);
在此代码中,findViewById 方法返回一个 View 类对象,该对象是 EditText 类的超类之一。(从 android.view.View 到 android.widget.EditText)代码运行良好。谁能解释我是否犯了错误或这是怎么发生的?
提前致谢。