在java中方法在被改写时(overriding),throws字句中的异常类型和数目都不能改变

我知道这句话是错的,异常类型可以缩小,那么数目呢,貌似也可以没有?那假设父类method()抛出了3个异常,那么子类的重写的method可以只抛出一个么?我这块搞得不是很... 我知道这句话是错的,异常类型可以缩小,那么数目呢,貌似也可以没有?
那假设父类method() 抛出了3个异常,那么子类的重写的method可以只抛出一个么?
我这块搞得不是很清楚,麻烦大家帮我理一理。-_- !
展开
 我来答
屏205211
2013-01-14 · TA获得超过943个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:220万
展开全部
按照重写的规定,访问权限不能变小,抛出异常不能变大,如果父类抛出来3个异常,子类的异常范围必须不能超过这三个异常的范围,子类抛出一个,只要这个异常的范围不超过就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4c08a42
2013-01-14 · TA获得超过258个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:78.5万
展开全部
子类覆盖方法中抛出的异常,可以和父类被覆盖方法抛出的异常一样,也可以是其中的一部分,或者其中一部分的子类,或者什么也不抛出。
class A{
void m() throws ArithmeticException, IndexOutOfBoundsException{}
}
class B extends A{
void m() throws ArrayIndexOutOfBoundsException{}
}
异常ArrayIndexOutOfBoundsException是IndexOutOfBoundsException的子类。这是可以的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长田山隐剑客
2013-01-14 · 超过17用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:41.8万
展开全部
不是,子类中抛出的异常要比父类多。
如果父类中抛出IOException,那么子类中可以抛出IOException,也可以抛出Exception,因为Exception包括了IOException
追问
你看看别人的回答,你弄反了吧???
追答
故意的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
longg_2009
2013-01-14 · 超过33用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:59.7万
展开全部
方法重写后THROWS子句中的异常和数目是可以变的,
方法重写后返回类型,参数是不可变的!
追问
就是问问怎么变滴,我也知道可以变啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
食之有鱼
2013-01-14
知道答主
回答量:20
采纳率:0%
帮助的人:7.5万
展开全部
那假设父类method() 抛出了3个异常,那么子类的重写的method可以只抛出一个么?这个是可以的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式