在java中方法在被改写时(overriding),throws字句中的异常类型和数目都不能改变
我知道这句话是错的,异常类型可以缩小,那么数目呢,貌似也可以没有?那假设父类method()抛出了3个异常,那么子类的重写的method可以只抛出一个么?我这块搞得不是很...
我知道这句话是错的,异常类型可以缩小,那么数目呢,貌似也可以没有?
那假设父类method() 抛出了3个异常,那么子类的重写的method可以只抛出一个么?
我这块搞得不是很清楚,麻烦大家帮我理一理。-_- ! 展开
那假设父类method() 抛出了3个异常,那么子类的重写的method可以只抛出一个么?
我这块搞得不是很清楚,麻烦大家帮我理一理。-_- ! 展开
6个回答
展开全部
按照重写的规定,访问权限不能变小,抛出异常不能变大,如果父类抛出来3个异常,子类的异常范围必须不能超过这三个异常的范围,子类抛出一个,只要这个异常的范围不超过就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
子类覆盖方法中抛出的异常,可以和父类被覆盖方法抛出的异常一样,也可以是其中的一部分,或者其中一部分的子类,或者什么也不抛出。
class A{
void m() throws ArithmeticException, IndexOutOfBoundsException{}
}
class B extends A{
void m() throws ArrayIndexOutOfBoundsException{}
}
异常ArrayIndexOutOfBoundsException是IndexOutOfBoundsException的子类。这是可以的。
class A{
void m() throws ArithmeticException, IndexOutOfBoundsException{}
}
class B extends A{
void m() throws ArrayIndexOutOfBoundsException{}
}
异常ArrayIndexOutOfBoundsException是IndexOutOfBoundsException的子类。这是可以的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是,子类中抛出的异常要比父类多。
如果父类中抛出IOException,那么子类中可以抛出IOException,也可以抛出Exception,因为Exception包括了IOException
如果父类中抛出IOException,那么子类中可以抛出IOException,也可以抛出Exception,因为Exception包括了IOException
追问
你看看别人的回答,你弄反了吧???
追答
故意的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法重写后THROWS子句中的异常和数目是可以变的,
方法重写后返回类型,参数是不可变的!
方法重写后返回类型,参数是不可变的!
追问
就是问问怎么变滴,我也知道可以变啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那假设父类method() 抛出了3个异常,那么子类的重写的method可以只抛出一个么?这个是可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询