在多态中成员函数(非静态)的特点:
在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有,编译失败。
在运行时期:参阅对象所属的类中是否有调用的方法。
简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。
在多态中成员变量的特点:
无论编译还是运行,都参考左边(引用型变量所属的类)。
在多态中静态成员函数的特点:
无论编译还是运行都参考左边
public class DuoTai_04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*Zi z=new Zi();
z.method1(); //子类覆盖父类
z.method2(); //子类没有method2,打印父类的
z.method3();*/ //子类独有的
Fu f=new Zi();
f.method1();
f.method2();
System.out.println(f.num); //4
f.method4(); //fu method_4
Zi z=new Zi();
System.out.println(z.num); //6
}
}
class Fu{
int num=4;
void method1(){
System.out.println("fu method_1");
}
void method2(){
System.out.println("fu method_2");
}
static void method4(){
System.out.println("fu method_4");
}
}
class Zi extends Fu{
int num=6;
void method1(){
System.out.println("zi method_1");
}
void method3(){
System.out.println("zi method_3");
}
}