父类方法中声明了异常类,子类重写时要声明吗?

patrickjiang 2009-12-13 10:16:02
父类代码:

class B {
void athrow(int x, int y) throws ArithmeticException {
return x / y;
}
}


子类代码:

public class B extends A {
void athrow() /*这里要加throws 异常吗?*/ {
try {
return x / y;
} catch (ArithmeticException e) {
System.out.println("运行时异常。");
}
}
}


请看官指教!
...全文
333 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tonkey520 2010-08-30
  • 打赏
  • 举报
回复
asdfasfa............
patrickjiang 2009-12-13
  • 打赏
  • 举报
回复
父类代码:

public class A {
// 父类的方法为实现整数除法
int athrow(int x, int y) throws ArithmeticException {
return x / y; //当除数为0,会产生ArithmeticException异常
}
}


子类代码:

public class B extends A {
int athrow(int x, int y) /* throws ArithmeticException */ {
try {
return x/y;
} catch (ArithmeticException e) {
System.out.println("异常为:" +e);
}
return 1;
}

public static void main (String[] args) {
B baby = new B();

baby.athrow(3, 0); //这里会产生异常,因为输入的值,除数为0
}
}
keeya0416 2009-12-13
  • 打赏
  • 举报
回复
遇到这种问题时,用 ECLIPSE 试一下就知道了
patrickjiang 2009-12-13
  • 打赏
  • 举报
回复
当重写父类方法,子类在抛出异常声明方面,要满足下面任意一条:

1. 不声明抛出异常。父类函数中,已经声明过了,可以不声明。

2. 子类声明的异常必须是父类方法声明那种异常或者其子类的异常。

例如:父类声明过ArithmeticException,子类声明只能为ArithmeticException或者ArithmeticException的子类的异常。

例如:父类声明Exception,这是所有异常类的父类,子类可以声明ArithmeticException。

自己编程实现了这个疑问了。

自己应该多思考,多动手,而不是什么问题都来问人。
crazylaa 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 swandragon 的回复:]
子类可以重写父类函数 在抛出异常声明方面要满足下面任意一条
1 不声明抛出异常
2 声明抛出的异常必须是其父类方法声明抛出的那种异常或者其子类异常
[/Quote]

up
godismydaughter 2009-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 swandragon 的回复:]
子类可以重写父类函数 在抛出异常声明方面要满足下面任意一条
1 不声明抛出异常
2 声明抛出的异常必须是其父类方法声明抛出的那种异常或者其子类异常
[/Quote]
swandragon 2009-12-13
  • 打赏
  • 举报
回复
子类可以重写父类函数 在抛出异常声明方面要满足下面任意一条
1 不声明抛出异常
2 声明抛出的异常必须是其父类方法声明抛出的那种异常或者其子类异常
patrickjiang 2009-12-13
  • 打赏
  • 举报
回复
子类忘记写main函数了,这里补下:


public class B extends A {
void athrow() /*这里要加throws 异常吗?*/ {
try {
return x / y;
} catch (ArithmeticException e) {
System.out.println("运行时异常。");
}
}

public static void main (String[] args) {
B baby = new B();
B.athrow (3/0);
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧