静态多态
1、方法重写:函数名相同,参数列表不同,返回值无所谓
参数列表可以是个数、类型不同
注意:(int... a)这种格式和(int[] a)在计算机中视为相同参数,前者在函数中使用时也是a[]
动态多态
类的继承:父类 变量名 = new 子类();
运行时,先在栈中建立变量,在方法区中调进父类,此时方法区中有父类静态函数和非静态函数
之后通过new在堆中建立子类
1、当调用方法时
父类在方法区中无该方法则报错,父类方法在方法区去中有该方法才可使用
方法调用过程中,对于非静态方法:子类实例调用自己的方法
对于静态方法不需要经过实例调用,父类直接用自己的方法
2、将定义为父类的子类再转为子类时:
先判断能否转换if(a instanceof B)能的话才能转换
instanceof是判断前者(必须为实例)是否能成为后者(必须为静态引用,比如类名)的一个实例
且两者必须为父子关系,否写报错
其改变需要强制转换,格式为:(子类名)变量名