对象在不同时刻表现出来的不同的状态
前提: 有继承关系(或者实现的关系)
有方法的重写
我们在使用多态的时候 就是为了使用 让父类的引用来调用子类重写的方法
如果没有方法的重写就没有意义了 也就不叫多态了
有父类的引用指向子类对象
特点:成员变量和成员方法
编译看左边 运行看右边
在多态的时候 父类的引用除了子类重写的方法是调用的子类的之外 其他的都是调用的父类的
如果父类没有就报错
弊端:父类的引用是不能使用子类的特有的功能的
怎么解决呢?
向上转型(小转大) 向下转型(大转小 需要强制 格式:(类名))
注意:在向下转型过程中有可能会出现ClassCastException 类型转换异常
以后必须这样做:父类的引用指向的哪个子类对象 就可以强转成哪个子类对象 否则报错
用处:提高程序的扩展性和可维护性
比如:在一个方法参数里面定义的是一个父类,而接收实际参数的时候 接收一个儿子 其实就是自动向上转型
这样就可以提高程序的扩展性和可维护性 |
|