发表于: 2017-03-14 10:57:37
2 1420
今天完成的事情:
学习面向对象的第三个基本特征——多态polymorphism
明天计划的事情:
学习抽象
收获:
1) 多态polymorphism的概念
多态性是OOP中的一个重要特征,主要是用来实现动态联编的,也就是说,程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。对于大型系统来说,能提高系统的灵活性和扩展性。
Java中实现多态:
引用变量的两种类型:
编译时类型(模糊一点,一般是一个父类):有声明时的类型决定;
运行时类型(运行时,具体是哪个子类就是哪个子类):由实际对应的对象类型决定。
多态的存在要有3个必要条件:要有继承,要有方法重写,父类引用指向子类对象。
下图说明多态polymorphism的用法:
2) 关于多态中存在的强制类型转换的问题
图左,Cat类是Animal父类的子类,除了有voice()方法重写外,增添了一个catchMouse()的方法,而这个方法在父类中是没有定义的。
图右,为了调用新增的catchMouse()方法,必须先将变量c强制转换为Cat类型,如果不转换则会报错显示:
The method catchMouse() is undefined for the type Animal
3) 实例说明多态特征,并内存分析
评论