JAVA多态

java多态简单的说就是java在编译和运行时呈现不同的状态。用下面的代码来说明:
JAVA多态
代码中将父类类型的变量mammal指向子类创建的对象whale,然后使用该变量调用子类中重写的方法,在编译时呈现的状态为调用的父类的方法,但实际上却是调用的子类中重写的方法。即编译时出现的类型运行时类型不一样可能呈现多态。上述代码中将父类类型的变量mammal指向子类创建的对象whale成为上转型,此过程就类似于(int a = 1, long b = a),但是上转型对象不能调用之类中新增的属性和方法。例如:JAVA多态
若要调用子类中新增的属性和方法,则需要在进行下转型,即
whale = (Whale) mammal;
此过程就类似于(int a = 1,long b = a, int c = (int) a;) 后半段的操作,可以理解为将其还原。此时,
JAVA多态
java多态中一定存在着重写(不然就全调用的父类中的方法,无法呈现多态),也一定存在着继承(不然连多态的概念多不符合)。