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



  1. interface A
  2. {
  3.         public void show();
  4. }
  5. class AException extends Exception
  6. {
  7.         AException(String msg){
  8.                 super(msg);
  9.         }
  10. }
  11. class Fu
  12. {
  13.         private void show(){
  14.                 System.out.println("xxx");
  15.         }
  16. }
  17. class Zi extends Fu implements A
  18. {
  19.         public void show() throws AException{
  20.                 throw new AException("奇怪,异常一直不抛....");
  21.         }
  22. }
  23. class  ExceptionDemo2
  24. {
  25.         public static void main(String[] args)
  26.         {
  27.                 try{
  28.                 new Zi().show();
  29.                 }catch(AException e){
  30.                         System.out.println(e.getMessage());
  31.                 }
  32.         }
  33. }
复制代码

3 个回复

倒序浏览
刚才编译了一下,应该在interface a中的show函数指明要抛出AException,子类只能抛出比父类更少的异常,希望我的解答可以修正你程序中的错误
回复 使用道具 举报
谢谢楼上哥们的解答...
回复 使用道具 举报
  1. interface A
  2. {
  3. public void show() throws AException;
  4. }

  5. class AException extends Exception

  6. {
  7. AException(String msg)
  8. {
  9. super(msg);
  10. }

  11. }
  12. class Fu
  13. {
  14. private void show()
  15. {

  16. }
  17. }
  18. class Zi extends Fu implements A
  19. {
  20. public void show() throws AException
  21. {
  22. throw new AException("奇怪,异常一直不抛....");
  23. }
  24. }
  25. class ExceptionDemo2
  26. {
  27. public static void main(String[] args)
  28. {
  29. try
  30. {
  31. new Zi().show();
  32. } catch (AException e)
  33. {
  34. System.out.println(e.getMessage());
  35. }
  36. }
  37. }
复制代码
Zi 类实现了接口A,那么你就要实现接口A中的show方法,因为接口A中定义的接口没有跑出异常
所以你实现的方法也不能抛出异常啊,你要把抛出异常定义到接口的方法上就行啦!

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马