Java面向对象之多态(成员访问特点) 入门实例

一、基础概念

  多态的调用方式在子父类中的特殊体现。

  1.访问成员变量特点:
    当子父类中出现同名成员变量时。

    多态调用时,编译和运行都参考引用型变量所属的类中的成员变量。

    即编译和运行看等号的左边。

  2.访问成员函数特点:

    当子父类中出现一模一样的函数时。

    多态调用时,编译参考的是引用型变量所属的类,运行时参考的是对象所属类。因为函数有一个覆盖的特性。

    即编译看左边,运行看右边。

  3.访问静态函数特点:
    当子父类中出现一模一样的静态函数时。

    多态调用时,编译和运行都参考引用型变量所属的类中的静态函数。

    即编译和运行看等号的左边。

二、实例代码

 1 class Fu
 2 {
 3     int num = 4;
 4     void show()
 5     {
 6         System.out.println("fu run  ......");
 7     }
 8     static void staticshow()
 9     {
10         System.out.println("fu static show  ......");
11     }
12 }
13 
14 class Zi extends Fu
15 {
16     int num = 5;
17     void show()
18     {
19         System.out.println("Zi run  ......");
20     }
21     static void staticshow()
22     {
23         System.out.println("Zi static show  ......");
24     }
25 }
26 
27 class DuoTaiDemo2 
28 {
29     public static void main(String[] args) 
30     {
31         //访问成员变量
32         Fu f1 = new Zi();//多态向上转型
33         Zi z1 = (Zi)f1;//多态向下转型
34         System.out.println(f1.num);
35         System.out.println(z1.num);
36         
37         //访问成员函数
38         Fu f2 = new Zi();
39         Zi z2 = (Zi)f2;
40         f2.show();
41         z2.show();
42         
43         //访问静态函数
44         Fu f3 = new Zi();
45         Zi z3 = (Zi)f3;
46         f3.staticshow();
47         z3.staticshow();
48     }    
49 }

三、代码运行

  

 

posted @ 2018-04-27 12:57  竹小冉  阅读(1031)  评论(0编辑  收藏  举报