黑马程序员技术交流社区

标题: 谁能解释下面程序运行的结果?有没有基础较强的 [打印本页]

作者: 探索者    时间: 2015-5-28 17:37
标题: 谁能解释下面程序运行的结果?有没有基础较强的

程序1:
  1. class  Demo1 extends Demo3
  2. {
  3.         public void print()
  4.         {
  5.                         System.out.println(super.getString());
  6.                         System.out.println(super.toString());
  7.         }
  8.        
  9.         {
  10.                 print();       
  11.         }
  12.         public String toString()
  13.         {
  14.                 return "nihao:";
  15.         }
  16. }
  17. class  Demo2 extends Demo1
  18. {
  19.         public void print()
  20.         {
  21.                         System.out.println(super.getString());
  22.                         System.out.println(super.toString());
  23.         }
  24.        
  25.         {
  26.                 print();       
  27.         }
  28.         public String toString()
  29.         {
  30.                 return "====";
  31.         }
  32.         public String getString()
  33.         {
  34.                 return "----";
  35.         }
  36. }
  37. class  Demo3
  38. {
  39.         public static void main(String[] args)
  40.         {
  41.                 Demo2 car2= new Demo2();
  42.                 System.out.println(car2);

  43.         }
  44.         {
  45.                 System.out.println(super.toString());
  46.         }
  47.         public String getString()
  48.         {
  49.                 return "----";
  50.         }
  51.         
  52. }
复制代码
[size=14.1666660308838px]程序1的结果为:
[size=14.1666660308838px]CarDemo2@1db9742
[size=14.1666660308838px]nihao:
[size=14.1666660308838px]----
[size=14.1666660308838px]nihao:
[size=14.1666660308838px]----
[size=14.1666660308838px]====

[size=14.1666660308838px]程序2:
[size=14.1666660308838px]
  1. class  Demo1 extends Demo3
  2. {
  3.         public void print()
  4.         {
  5.                         System.out.println(super.getString());
  6.                         System.out.println(super.toString());
  7.         }
  8.        
  9.         {
  10.                 print();       
  11.         }
  12. }
  13. class  Demo2 extends Demo1
  14. {
  15.         public void print()
  16.         {
  17.                         System.out.println(super.getString());
  18.                         System.out.println(super.toString());
  19.         }
  20.        
  21.         {
  22.                 print();       
  23.         }
  24.         public String toString()
  25.         {
  26.                 return "====";
  27.         }
  28.         public String getString()
  29.         {
  30.                 return "----";
  31.         }
  32. }
  33. class  Demo3
  34. {
  35.         public static void main(String[] args)
  36.         {
  37.                 Demo2 car2= new Demo2();
  38.                 System.out.println(car2);

  39.         }
  40.         {
  41.                 System.out.println(super.toString());
  42.         }
  43.         public String getString()
  44.         {
  45.                 return "----";
  46.         }
  47.         
  48. }
复制代码

程序2的运行结果:
Demo2@1db9742
----
Demo2@1db9742
----
Demo2@1db9742
====







作者: lizhi    时间: 2015-5-28 17:42
Demo2@1db9742你这打印的是地址值
作者: 探索者    时间: 2015-5-28 17:44
lizhi 发表于 2015-5-28 17:42
Demo2@1db9742你这打印的是地址值

恩,是地址值




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2