多态是面向对象的三大特性之一,是父类引用指向子类对象,并通过继承和重写实现在业务方法中传入父类引用,调用父类引用中的方法,但具体实现的是子类中重写的父类方法,表面看上去是执行相同的方法,实际产生的结果却各不相同。
多态的本质就是父类子类的继承关系,以及子类对父类方法的重写。
要实现多态就会涉及到一个父类子类转换的问题,在Java中,子类向父类转换是没有问题的,因为子类向父类转换的时候相当于是将内存由大变小,所以不会出现内存越界的情况,但是如果是父类转换为子类,就需要小心内存越界的问题,在这里我们可以使用 instanceof 关键字进行判断,如果父类引用指向的是一个子类对象,用 instanceof 可以判断出这个子类对象是属于哪个类,从而进行安全的父类到子类转换。