Java学习之多态---类成员变化

类成员

一、成员变量
  编译时:变量(f)所属类(Fu)中是否有成员变量,有:编译成功,没有:编译失败
  运行时:变量(f)所属类(Fu)中是否有成员变量,运行该类(Fu)中的成员变量

 1 class Fu
 2     {
 3         int num = 3;
 4     }
 5     
 6     class Zi extends Fu
 7     {
 8         int num=4;
 9     }
10     
11     class Demo
12     {
13         public static void main(String[] args)
14         {
15             Fu f=new Zi();
16             System.out.println(f.num);//结果:3
17             //
18         }
19     }
20     
21     class Fu
22     {
23         //int num = 3;
24     }
25     
26     class Zi extends Fu
27     {
28         int num=4;
29     }
30     
31     class Demo
32     {
33         public static void main(String[] args)
34         {
35             Fu f=new Zi();
36             System.out.println(f.num);//结果:编译失败
37         }
38     }

二、成员函数 
  编译时:变量(f)所属类(Fu)中是否有成员函数,有:编译成功,没有:编译失败
  运行时:对象所属的类(Zi)中是否有成员函数,有:运行对象的类(Zi)的成员函数,没有:运行父类(Fu)成员函数 

 1 class Fu
 2     {
 3         void show()
 4         {
 5             System.out.println("Fu");
 6         }
 7     }
 8     
 9     class Zi extends Fu
10     {
11         void show()
12         {
13             System.out.println("Zi");
14         }
15     }
16     
17     class Demo
18     {
19         public static void main(String[] args)
20         {
21             Fu f=new Zi();
22             f.show();//结果:Zi
23         }
24     }
25     
26     class Fu
27     {
28         //void show()
29         //{
30         //    System.out.println("Fu");
31         //}
32     }
33     
34     class Zi extends Fu
35     {
36         void show()
37         {
38             System.out.println("Zi");
39         }
40     }
41     
42     class Demo
43     {
44         public static void main(String[] args)
45         {
46             Fu f=new Zi();
47             f.show();//结果:编译失败
48         }
49     }

三、静态函数
  编译时:变量(f)所属类(Fu)中是否有静态函数,有:编译成功,没有:编译失败
  运行时:变量(f)所属类(Fu)中是否有静态函数,有:运行成功,没有:运行失败

 1 class Fu
 2     {
 3         static void show()
 4         {
 5             System.out.println("Fu");
 6         }
 7     }
 8     
 9     class Zi extends Fu
10     {
11         static void show()
12         {
13             System.out.println("Zi");
14         }
15     }
16     
17     class Demo
18     {
19         public static void main(String[] args)
20         {
21             Fu f=new Zi();
22             f.show();//结果:Fu
23         }
24     }
25     
26     class Fu
27     {
28         //void show()
29         //{
30         //    System.out.println("Fu");
31         //}
32     }
33     
34     class Zi extends Fu
35     {
36         static void show()
37         {
38             System.out.println("Zi");
39         }
40     }
41     
42     class Demo
43     {
44         public static void main(String[] args)
45         {
46             Fu f=new Zi();
47             f.show();//结果:编译失败
48         }
49     }

 

上一篇:EM算法


下一篇:java封装中使用set方法去访问私有属性