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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴光新 黑马帝   /  2013-5-30 22:09  /  1496 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Jiewin 于 2013-6-4 23:05 编辑

先看看代码
  1. abstract class Student
  2. {
  3. public abstract void study();
  4. public void sleep()
  5. {
  6. System.out.println("躺着睡");
  7. }
  8. }

  9. class BaseStudent extends Student
  10. {
  11. public void study()
  12. {
  13. System.out.println("base study");
  14. }
  15. public void sleep()
  16. {
  17. System.out.println("坐着睡");
  18. }
  19. }

  20. class DoStudent
  21. {
  22. public void doSome(Student stu)
  23. {
  24. stu.study();
  25. stu.sleep();
  26. }
  27. }

  28. class DuoTaiDemo3
  29. {
  30. public static void main(String[] args)
  31. {
  32. DoStudent ds = new DoStudent();
  33. ds.doSome(new BaseStudent());
  34. ds.doSome(new AdvStudent());
  35. }
  36. }
复制代码
结果:


代码是看视频抄下来的,运行结果,多了adv study这一句,我检查了代码,没有这一句输出啊,在看看老师的代码,发现我少写了类class AdvStudent这一段,老师运行的结果和图上的结果一样,但我明明没有写,为什么也会在打印出来?太诡异了,怎么回事啊




6 个回复

倒序浏览
AdvStudent 这个类哪里去了
回复 使用道具 举报
你没写是不可能运行出来的。
这种情况只有三种可能:
1,你的代码和老师的代码放在了同一个包里面,也就是说你编译出的class类的当前目录下面有AdvStudent.class这个文件。所以可以运行。
2,你运行的是老师的代码。
3,你把老师的代码生成的类放在了classppath目录下(这个你应该不会这么干吧。。);
所以 第一种情况的可能性最大。。
解决办法就是 你把你的java源文件拷贝到一个另一个文件夹当中。。 再 编译运行一下

点评

请问老师的代码在哪里下载?  发表于 2013-5-30 22:52
回复 使用道具 举报
楼主,你第二个传的类,我表示没有找到,你找到你学的那个类,一切都解决了!
回复 使用道具 举报
张甲甲 发表于 2013-5-30 22:27
你没写是不可能运行出来的。
这种情况只有三种可能:
1,你的代码和老师的代码放在了同一个包里面,也就是 ...

找到问题了,在当前目录下,确实有一个AdvStudent的class文件,不是老师的,是之前的某个例子里也包含了这个类,谁知道这么巧,忘记写它但它也已经存在了!这也让我发现了一个问题,可以调用其他class文件!!
回复 使用道具 举报
加我qq我给你发一份
回复 使用道具 举报
如果问题已经解决,再次编辑,修改主题类型为已解决,方便大家查看
否则继续追问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马