1、什么是多态?
相同的行为,不同的实现
2、多态的分类?
静态多态:在编译期就能够明确的知道调用对象的哪个方法,
或者调用哪个对象的方法。
比如:重载 单独使用重写
动态多态: 在编译期不知道调用的是哪个对象的重写后方法,要
运行起来以后才能够根据绑定对象确定。
实现要求: 动态绑定 和 重写 合二为一
3、类型转换技术的总结
1、基本数据类型能转换,引用数据类型也能转换;
2、基本数据类型的转换方式和引用数据类型的转换方式有统一性;
对于引用数据类型的强转,理解的时候最好从语境和内存上去理解
最重要的两条结论:
1、父类引用 = 子类对象;
2、父类引用.父类的行为();
4、动态绑定技术
1、父类引用指向子类对象的时候,调用父类中定义的重写方法,
得到的是子类重写后的效果;
2、父类引用现在既可以指向父类对象,也可以指向A子类对象,或
B子类对象,那么可以用instanceof进行判断;
3、在判断成功后,可以进行强转,用本类类型去指向本类对象,然后
就可以访问到本类中的特有行为。
5、动态多态在实际开发中的使用
1、多态参数,也就是某个方法如果用父类引用作为参数,那么实参
可以传递任意子类对象,当然也可以传递父类对象;
2、多态集合,如果数组的元素类型是父类类型,那么该数组的每个
元素都可以放入子类对象
特例,由于Object是所有类的根类,所以如果是Object的引用,那么
可以指向任意引用数据类型对象。