java(二十六)【面向对象】多态中成员的特点

成员函数在多态中的特点:

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

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

成员函数在多态调用时,编译看左边,运行看右边

 1 class Fu{
 2     void  methon_1(){
 3         System.out.println("fu methon_1");
 4     }
 5     void  methon_2(){
 6         System.out.println("fu methon_2");
 7     }
 8     void  methon_4(){
 9         System.out.println("fu methon_4");
10     }
11 }
12 class Zi extends Fu{
13     void  methon_1(){
14         System.out.println("zi methon_1");
15     }
16     void  methon_3(){
17         System.out.println("zi methon_3");
18     }
19 }
20 class Huahua
21 {
22     public static void main(String [] args) {
23         Fu f=new Zi(); //运行时运行对象所属的类中的方法  成员函数在多态调用时,编译看左边,运行看右边
24         f.methon_1(); //该句运行的Zi类中的方法
25         f.methon_2(); 
26         f.methon_4();
27     //    f.methon_3();   该句编译失败(在编译时期,参阅引用型变量所属的类中是否有调用的方法)
28     }
29 }

 

运行结果:

  

 成员变量在多态中的特点:无论编译还是运行,都参照左边(引用型变量所属的类)

 1 class Fu{
 2     static int num=1;
 3     void  methon_1(){
 4         System.out.println("fu methon_1");
 5     }
 6     void  methon_2(){
 7         System.out.println("fu methon_2");
 8     }
 9     void  methon_4(){
10         System.out.println("fu methon_4");
11     }
12 }
13 class Zi extends Fu{
14     int num=2;
15     void  methon_1(){
16         System.out.println("zi methon_1");
17     }
18     void  methon_3(){
19         System.out.println("zi methon_3");
20     }
21 }
22 class Huahua
23 {
24     public static void main(String [] args) {
25     Fu f=new Zi();  //成员变量在多态中的特点:不论编译还是运行,参照左边(引用型变量所属的类)
26     System.out.println(f.num);
27     Zi z=new Zi();
28     System.out.println(z.num);
29     }
30 }

 

运行结果:

  

静态(static)成员函数在多态中的特点:不论是编译还是运行都参照左边(引用型变量所属的类)

 1 class Fu{
 2     int num=1;
 3     void  methon_1(){
 4         System.out.println("fu methon_1");
 5     }
 6     void  methon_2(){
 7         System.out.println("fu methon_2");
 8     }
 9     static void  methon_4(){
10         System.out.println("fu methon_4");
11     }
12 }
13 class Zi extends Fu{
14     int num=2;
15     void  methon_1(){
16         System.out.println("zi methon_1");
17     }
18     void  methon_3(){
19         System.out.println("zi methon_3");
20     }
21     static void  methon_4(){
22         System.out.println("zi methon_4");
23     }
24 }
25 class Huahua
26 {
27     public static void main(String [] args) {
28     Fu f=new Zi();
29     f.methon_4();  //静态(static)成员函数在多态中的特点:不论是编译还是运行都参照左边(引用型变量所属的类)
30     Zi z=new Zi();
31     z.methon_2();
32     }
33 }

 

运行结果:

  

 

posted @ 2015-09-15 09:42  花花妹子。  阅读(118)  评论(0)    收藏  举报