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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

注意:代码运行的是类CarDemo3,先不要看结果,答案回复后可见
  1. class  CarDemo1 extends CarDemo3
  2. {
  3.         public  static void main(String[] args)
  4.         {
  5.                 System.out.println("Hello---1");
  6.                
  7.         }
  8.         CarDemo1()
  9.         {
  10.                 name="王五";
  11.                 String[] str= {"abc","def"};
  12.                 main(str);
  13.                 System.out.println("Hello---11");
  14.         }
  15. }

  16. class  CarDemo2 extends CarDemo1
  17. {
  18.         String name;
  19.         public static void main(String[] args)
  20.         {
  21.                 System.out.println("Hello World!---2");
  22.         }
  23.         {
  24.                 CarDemo1 car= new CarDemo1();
  25.                 System.out.println(name);
  26.         }
  27. }
  28. class  CarDemo3
  29. {
  30.         String name="张三";
  31.         public static void main(String[] args)
  32.         {
  33.                 System.out.println("Hello---3");
  34.                 CarDemo2 car= new CarDemo2();
  35.         }
  36.         {
  37.                 name="李四";
  38.                 System.out.println(name);
  39.         }
  40.        
  41. }
复制代码

游客,如果您要查看本帖隐藏内容请回复

16 个回复

正序浏览
我也没看懂
回复 使用道具 举报
Huylens 发表于 2015-5-25 18:41
能说下你的理解吗?

1.运行的是CarDemo3,所以从程序从CarDemo3的主程序开始执行,此时执行“System.out.println("Hello---3");”
   打印:Hello---3
2.执行“CarDemo2 car= new CarDemo2();”,发现CarDemo2有父类CarDemo1,而
CarDemo1又有父类CarDemo3,所以初始化CarDemo3,
   打印:李四
3,接下来初始化CarDemo1,
  打印:Hello---1
            Hello---11
4.初始化CarDemo2,执行“String name;”是将原name值覆盖为默认初始化值null,
接下来执行“CarDemo1 car= new CarDemo1();”这通之前的父类加载同理,先初始化
CarDemo3,
  打印:李四
再初始化CarDemo1,
打印:Hello---1
            Hello---11
5.执行“System.out.println(name);”此时的name已经被覆盖了为null了,
打印:null
6.CarDemo3的主函数执行完毕,结束。
   
回复 使用道具 举报
赞一个!
回复 使用道具 举报
应该CarDemo1类中的main执行完就不会走了吧
回复 使用道具 举报
被难到了
回复 使用道具 举报
能说下你的理解吗?
回复 使用道具 举报
我的答案和8楼一样
Hello---3
李四
Hello---1
Hello---11
李四
Hello---1
Hello---11
null
回复 使用道具 举报
看看答案
回复 使用道具 举报
Hello---3;Hello---1;"Hello World!---2; 王五;李四
回复 使用道具 举报
hello------3
李四
hello------1
hello------11
李四
hello------1
hello------11
null
我的答案
回复 使用道具 举报
Huylens 发表于 2015-5-25 14:41
为什么我把代码拷贝到eclipse中运行,结果只有hello--1,怎么解决?

复制到eclipse里,运行也没问题,在eclipse里运行的时CarDemo3,所以最好把源文件命名为
CarDemo3.以防出错
回复 使用道具 举报
果然被难住了……理解的还是不够好啊
回复 使用道具 举报
Huylens 发表于 2015-5-25 14:41
为什么我把代码拷贝到eclipse中运行,结果只有hello--1,怎么解决?

刚才复制了代码到editplus里,没有问题,eclipse里没有试过
回复 使用道具 举报

为什么我把代码拷贝到eclipse中运行,结果只有hello--1,怎么解决?
回复 使用道具 举报
Huylens 发表于 2015-5-25 13:25
hello--3;李四;王五;hello--11;hello1

答案不对
回复 使用道具 举报
hello--3;李四;王五;hello--11;hello1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马