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

© wisely 中级黑马   /  2014-7-22 22:48  /  717 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这段有点晕,整理一下方便以后回忆
  1. class Fu{
  2.         int num=5;
  3.         public void method_1(){
  4.                 System.out.println("Fu method_1");
  5.         }
  6.         public void method_2(){
  7.                 System.out.println("Fu method_2");
  8.         }
  9.         static void method_4(){
  10.                 System.out.println("Fu method_4");
  11.         }
  12. }

  13. class Zi extends Fu{
  14.         int num=8;
  15.         public void method_1(){
  16.                 System.out.println("Zi method_1");
  17.         }
  18.         public void method_3(){
  19.                 System.out.println("Zi method_3");
  20.         }
  21.         static void method_4(){
  22.                 System.out.println("Zi method_4");
  23.         }
  24. }

  25. public class Sunday{
  26.         public static void main(String[] args){

  27.                
  28.                 /*
  29.                 Fu f=new Zi();
  30.                 f.method_4();        //Fu method_4       
  31.                 */
  32.                
  33.                 /*
  34.                 Fu f=new Zi();
  35.                 System.out.println(f.num);//5
  36.                 Zi z=new Zi();
  37.                 System.out.println(z.num);//8
  38.                 */

  39.                 /*
  40.                 Fu f=new Zi();
  41.                 f.method_1();//Zi method_1
  42.                 f.method_2();//Fu method_2
  43.                 */

  44.                 /*
  45.                 Fu f=new Zi();
  46.                 f.method_1();
  47.                 f.method_2();
  48.                 f.method_3();//编译期报错,找不到符号method_3
  49.                 */


  50.                 /*
  51.                 Zi z=new Zi();
  52.                 z.method_1();    //Zi method_1
  53.                 z.method_2();    //Fu method_2
  54.                 z.method_3();         //Zi method_3

  55.                 */
  56.         }
  57. }
复制代码

在多态中成员方法(非静态方法)的特点:
编译时期,参阅引用变量所属的类中是否有调用的方法,如果有编译通过,如果没有编译失败。
运行时期,参阅对象所属的类中是否有调用的方法。

简单总结就是,成员方法编译时看左边,运行是看右边。

在多态中,成员变量的特点:
简单总结就是,无论编译还是运行,都参考左边(引用数据所属的类)。

静态方法和静态变量的特点,与成员变量一样,都参考左边(引用数据所属的类)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马