A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 青春灬漫步 中级黑马   /  2014-10-16 20:14  /  1141 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在多态中,成员变量和静态成员函数的特点是什么?

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

7 个回复

倒序浏览
给你一个地址我们俩学习学习吧。讲的挺好。加油。

http://blog.csdn.net/iu_81/article/details/1557323

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
那感情好啊。多谢啊
回复 使用道具 举报
在多态中成员函数的特点:
在编译时期,参阅引用型变量所属的类中是否有调用的方法。
如果有,编译通过。
如果没有,编译失败。

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

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

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

在多态中,静态成员函数的特点:
无论编译和运行,都参考左边。

例子
  1. class Fu  
  2. {  
  3.      int num= 1;  
  4.      void method1()  
  5.      {  
  6.         System.out.println("fu method-1");  
  7.      }  
  8.      void method2()  
  9.      {  
  10.         System.out.println("fu method-2");  
  11.      }  
  12.      static void method4()  
  13.      {  
  14.         System.out.println("fu method-4");  
  15.      }  
  16. }  
  17.   
  18. class Zi extends Fu  
  19. {  
  20.      int num = 2;  
  21.      void method1()  
  22.      {  
  23.         System.out.println("Zi method-1");  
  24.      }  
  25.      void method3()  
  26.      {  
  27.         System.out.println("Zi method-3");  
  28.      }  
  29.      static void method4()  
  30.      {  
  31.         System.out.println("Zi  method-4");  
  32.      }  
  33.   
  34. }  
  35.   
  36. class Test  
  37. {  
  38.     public static void main(String[] args)   
  39.     {  
  40.         Fu f= new Zi();   
  41.         f.method1();    //结果是Zi的method1,覆盖  
  42.         f.method2();    //结果是Fu的method2.  
  43.          
  44.         //num全局变量  
  45.         System.out.println(f.num);  //结果是Fu的num  
  46.         Zi z= new Zi();  
  47.         System.out.println(z.num);  //结果是Zi的num  
  48.          
  49.         //method4() 是静态函数  
  50.         f.method4();    //结果是Fu的method4  
  51.         z.method4();    //结果是Zi的method4  
复制代码
回复 使用道具 举报
本帖最后由 nerveva2000 于 2014-10-17 10:19 编辑

简单总结就是:
在多态中,成员函数的特点
编译看左边,运行看右边。

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

在多态中,静态成员函数的特点:
无论编译和运行,都参考左边。

  1. class Test  
  2. {  
  3.     public static void main(String[] args)   
  4.     {  
  5.         //Zi extends Fu

  6.                 //method1()是成员函数
  7.                 Fu f= new Zi();   
  8.         f.method1();    //结果是Zi的method1,覆盖  
  9.         f.method2();    //结果是Fu的method2.  
  10.          
  11.         //num全局变量  
  12.         System.out.println(f.num);  //结果是Fu的num  
  13.         Zi z= new Zi();  
  14.         System.out.println(z.num);  //结果是Zi的num  
  15.          
  16.         //method4() 是静态函数  
  17.         f.method4();    //结果是Fu的method4  
  18.         z.method4();    //结果是Zi的method4  
  19.         }
复制代码



评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报 1 0
我也不太明白这个
回复 使用道具 举报
都只看引用类型那个类,它不会走子类
回复 使用道具 举报
lypin 中级黑马 2014-10-18 08:33:56
8#
楼上有结果了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马