首页 > 代码库 > java 多态

java 多态

(1)在多体中非静态成员函数的特点:

在编译时期,参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有,编译失败

在运行时期,参阅对象所属的类中是否有调用的方法

简单总结就是:成员函数在多态调用时,编译看左边,运行看右边

(2)在多体中静态成员函数的特点:

无论编译和运行,都参考左边。

(3)在多态中,成员变量的特点:

无论编译和运行,都参考左边(引用型变量所属的类)

 1 class Fu{ 2     static int num = 1; 3     void method1(){ 4        System.out.println("父类方法1");   5     } 6    void method2(){ 7       System.out.println("父类方法2");   8   }  9 10 }11 12 class Zi extends Fu{13 14     static int num = 2;15     void method1(){16        System.out.println("子类方法1");  17     }18     void method2(){19       System.out.println("子类方法2");  20     }21     void method3(){22        System.out.println("子类方法3");  23     }24 }25 26 27 public static void main(String[] args){28 29            Fu f = new Zi();30            System.out.println(f.num);//输出1,对应规则(3),如果是静态函数的话,也是调用父类的方法31            f.method1();//输出“子类方法1”32            f.method2();//输出“子类方法2”33            f.method3();//编译不通过,规则(1)
}

 PS:静态函数与成员变量是静态绑定,非静态的是动态绑定

java 多态