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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庄星睿 中级黑马   /  2012-6-13 12:41  /  1114 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

找了几道改错题练练,越练越没信心了,基础啊。。。伤不起啊
  1. abstract class A
  2. {
  3. public abstract void fun();
  4. interface B
  5. {
  6. public  void fun();
  7. }
  8. }

  9. class X extends A
  10. {
  11. public void fun()
  12. {
  13. System.out.println("class X..........void fun()");
  14. }

  15. class Y implements B
  16. {
  17. public void fun()
  18. {
  19. System.out.println("class Y........void fun()");
  20. }
  21. }

  22. }

  23. class Test
  24. {
  25. public static void main(String[] args)
  26. {
  27. A a=new X();
  28. a.fun();
  29. //A.B b=a.new Y();
  30. A.B b=new X().new Y();
  31. b.fun();
  32. }
  33. }
复制代码
A a=new X();
a.fun();
//A.B b=a.new Y();  //a相当于 A a=new X(); 抽象类不能实例化 或者把A a=new X() 改成X a=new X(),或者把a改成new X()
A.B b=new X().new Y();
b.fun();
刚查了,抽象类里是可以包含接口的,反之接口里也可以包含抽象类的,我改了一下,感兴趣的看一下,呵呵
  1. interface A
  2. {
  3. public  void fun();
  4. abstract class B
  5. {
  6. public abstract void fun();
  7. }
  8. }

  9. class X implements A
  10. {
  11. public void fun()
  12. {
  13. System.out.println("class X..........void fun()");
  14. }

  15. class Y extends B
  16. {
  17. public void fun()
  18. {
  19. System.out.println("class Y........void fun()");
  20. }
  21. }

  22. }

  23. class Test2
  24. {
  25. public static void main(String[] args)
  26. {
  27. A a=new X();
  28. a.fun();
  29. //A.B b=a.new Y();
  30. A.B b=new X().new Y();
  31. b.fun();
  32. }
  33. }
复制代码
实例化跟上面都一样了,不论接口还是抽象类都必须子类去实例化

评分

参与人数 1黑马币 +20 收起 理由
黄奕豪 + 20

查看全部评分

0 个回复

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