0x01 多态
一个类对象有各种形态,比如狗是狗类,也是动物类,一个表示当前类,一个表示其父类
0x02 多态的特点
- 子类对象赋值给父类,运行时,表现的是子类的特征(先去找子类的方法)
- 字段不存在多态,字段前面是什么类型就调用谁的,在编译的时候已经确定要去调用谁的
怎么理解呢,看下面的代码
运行的时候发现结果是Super,不是说调用子类的特征吗?为什么不是Sub?答案就是刚才说的那样,在编译的时候已经决定了使用字段的类型。
0x03 多态的作用
- 当把不同子类对象都当作父类来看待,可以屏蔽不通过子类对象之间的差异性,从而达到通用编程的目的
- 使用多态后,只需要写一个方法就能达到相同的功能
0x04 类的强制类型转换
把父类赋值给子类,在概念上与多态相反。