在了解多态时,我们一般使用它默认的向上转型,也不需要强制转换。
但是当我们使用子类的独有方法时,会报错,这时候我们需要向下转型。
但是,我们知道,Java开发中IDEA是一个非常智慧的工具,我们使用向下转型后,它提示可以直接简化对象。如下。
网络异常,图片无法展示
|
想想,这不是多此一举吗?
Demo demo = new Demo(); demo.Show();
这样不是更好吗?
其实这样是为了后面的泛型考虑的。
其实向上转型和向下转型都是很重要的,可能我们平时见向上转型多一点,向上转型也比较好理解。
最大的用处是Java的泛型编程,用处很大,Java的集合类都是这样的。
在Android开发中,我们在Layout文件夹,用xml写的控件。为什么能在Activity等组件中通过 findViewById() 方法找到呢?为什么 findViewById(R.id.textview) 方法传入TextView的id后,还要转型为TextView呢?这就是 Java 向下转型的一个应用。
所以,一个事物的设定,必定有他的道理,只是你还没接触到它罢了!