定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
多态的前提和体现
- 要有继承关系
- 有方法重写
- 有父类引用指向子类对象
父类引用指向子类对象
多态成员访问特点:
- 成员变量
编译看左边,运行看左边
- 构造方法
构建子类对象时,会访问父类构造方法
- 成员方法
编译看左边,运行看右边
- 静态成员方法
编译看左边,运行看左边
向上向下转型
- 上转型:是子类对象由父类引用,
- 格式:parent p=new son
也就是说,想要上转型的前提必须是有继承关系的两个类。 - 在调用方法的时候,上转型对象只能调用父类中有的方法
- 如果调用子类的方法则会报错
- 下转型:是父类向下强制转换到子类对象
- 前提是该父类对象必须是经过上转型的对象。
例:
例2: