一、向上转型
简单的说向.上转型就是:将-一个子类类型的对象赋值给- -个父类类型的变量,
基本的实现语法:
父类类型变量=new 子 类类型();
DEMO:向上转型
发现了可以使用父类类型的变量调用子类覆写了父类的方法,但是为什么不调用Worker的say()方法呢?原因是具体调用哪一个子类覆写的方法是在运行期间根据具体你赋值的子类来确定的。
思考:在之前我们说过,子类出了可以继承父类的成员方法和变量还可以扩充属于自己的新的操作,那么可以使用父类类型的变量调用子类新扩充的方法吗?
DEMO:调用子类新扩充的方法
发现了不能使用父类类型的变量调用子类新扩充的方法,如果要实现调用可以使用向下转型。将一个父类类型的变量强制转换为子类类型。具体的实现语法:
但是向下转型会存在风险,存在类型转换异常的风险。
二:向下转型
简单的说向上转型就是:将一个父类类型的变量强制转换为子类类型。具体的实现语法:
DEMO:向下转型
发现了实现向下转型必须先向,上转型,但是向下转型作用不大,只是作为知识点提出,向下转型还存在类型转换异常的风险。
向下转型用得不多,你知道这个概念就行,但是你要记住这个异常(ClassCastException)。其实也可以在代码中防止这样的异常。
DEMO:防止异常的出现
虽然可以使用instanceof关键字防止类型转换异常的出现,但是没事干别向下转型。
最后
学习不要走马观花的学,每个知识重点大纲,就是学习路线都是根据每一天市场上多数公司用到的新技术整理,在学习的时候还需要结合练习题来做这里的话我也将我之前在学习过程中用到的一些学习资料整理成了文档,以及我自身之前的一个面试文案和知识点补充,有需要的朋友可以加我的QQ群697888503,这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。