被覆盖的方法无法抛出异常

比如我有个interface中定义了一个方法doublecalculateVolume();,然后在一个class里覆盖了这个方法并抛出异常publicdoublecal... 比如我有个interface中定义了一个方法double calculateVolume();,然后在一个class里覆盖了这个方法并抛出异常
public double calculateVolume() throws InvalidDimensionException
{
throw new InvalidDimensionException();
}
编译的时候说被覆盖的方法无法抛出异常,我也怎么解决?
展开
 我来答
puziguo
2008-07-07 · TA获得超过1928个赞
知道小有建树答主
回答量:884
采纳率:86%
帮助的人:807万
展开全部
javainlife 的代码为什么能打印出a,那是因为其抛出的异常是RuntimeException,所以在b.java中

public void a() throws RuntimeException
public void a()
两中写法是等价的

覆盖有个原则
子类覆盖父类的方法,那么子类方法声明抛出的异常必须是父类方法声明抛出的异常的本身或者其子类

比如说父类上面抛出Exception

那么子类方法声明可以抛出Exception 或者Exception的子类异常

下面的代码可以看看:
class MyException extends RuntimeException{

}
interface a{
public void aa();
}
class b implements a{
public void aa()throws MyException{

}
}
编译没问题
yumenfeiyu945
2008-07-07 · TA获得超过8976个赞
知道小有建树答主
回答量:362
采纳率:0%
帮助的人:228万
展开全部
子类覆盖了父类中的方法,只能抛出父类中声明抛出的异常或者其子异常,不能抛出新的异常,你的父类中的方法没有声明抛出这个异常或者它的父异常,所以就会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狗步轻扬
2008-07-07 · TA获得超过709个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:0
展开全部
方法的覆盖 一般是发生在父类和子类之间
如果子类中定义方法所用的名字、返回类型、和参数表和父类中的方法使用完全一样.
1>子类对象引用被它隐藏了的父类的属性;
2>和调用被它覆盖了的父类的方法使用;
你那是实现了自己定义的个接口。
你的信息少点,给你写了个例子:
a.java
public interface a{
void a();
}

b.java
public class b implements a{
public void a() throws RuntimeException{

System.out.println("a");
throw new RuntimeException();
}
public static void main(String[] args){
new b().a();
}
}

运行
a
Exception in thread "main" java.lang.RuntimeException
at b.a(b.java:5)
at b.main(b.java:8):

他会先输出a 仁厚抛出 写在方法里的java.lang.RuntimeException
异常,并写出了 抛出异常的地方。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二宕45
2008-07-07 · 超过52用户采纳过TA的回答
知道答主
回答量:195
采纳率:0%
帮助的人:137万
展开全部
当然无法抛出~ 只有INTERFACE 里面方法抛出,实现它的时候才可以抛出!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a28217434
推荐于2016-12-02 · TA获得超过569个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:347万
展开全部
在interface里这样定义。
double calculateVolume() throws InvalidDimensionException ;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式