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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我为你着迷 金牌黑马   /  2014-4-25 21:05  /  1227 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家好! 我想问下就是毕老师说接口中的方法不可以抛出异常,只能try处理,是为什么呀?  帮忙解答下,跪谢!

17 个回复

倒序浏览
异常在子父类覆盖中的体现;(看看这个,相信你就明白了)

1,如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。如果子类方法发生了异常。就必须要进行try处理。绝对不能抛。

2,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类,当然你也可以不用抛的,你自己可以try...catch处理的话。


class AException extends Exception
{
}
class BException extends AException
{
}
class CException extends Exception
{
}
/*
Exception
|--AException
      |--BException
|--CException
*/
class Fu
{
void show()throws AException
{  
}
}
class Zi extends Fu
{
void show()throws AException //这里可以抛出AException或BException ,但是不能抛出CException
{
}
}

3,如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。
也就是说父类抛出了A,B,C,D 异常的话,那么子类只能抛出B,C,D或者是C,D...异常。





评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
接口中的方法都的没实现的,由实现了接口的类来实现。如果你在方法上抛出了异常,是抛给调用者处理,调用者无法处理的,所以只能try不能抛!
回复 使用道具 举报
    其实你可以将一个类实现了接口,认为是一个类继承了接口,认为该接口就是该类的子类,
    父类认为是父亲,子类认为是儿子,儿子仿照父亲也做了类似父亲做的事情,然后说这个事情有异常,父亲当然就不干了,我做都没有问题,你做怎么会有问题呢?真是大不敬啊!所以,儿子就不能把这个问题,抛出来,免得不孝顺,但是可以自己在内部把它处理了
     当然如果父亲认为做这件事情,确实有一些异常,儿子做的时候就只能说出父亲申明的异常,自己不就能搞出新的异常来,也就是老爸说有这些这些问题,儿子要么说没有异常,要么说,有一部分老爸说的异常,但是自己的新异常,则只能自己处理了,你看儿子是多么的孝顺啊
     这样理解,应该也是没有多大问题的
回复 使用道具 举报
其实你可以将一个类实现了接口,认为是一个类继承了接口,认为该接口就是该类的父类
回复 使用道具 举报
fufeng 发表于 2014-4-25 21:31
其实你可以将一个类实现了接口,认为是一个类继承了接口,认为该接口就是该类的子类,
    父类认为是 ...

呵呵 谢谢啊  
回复 使用道具 举报
你为谁归来 发表于 2014-4-25 21:14
接口中的方法都的没实现的,由实现了接口的类来实现。如果你在方法上抛出了异常,是抛给调用者处理,调用者 ...

嘿嘿 谢谢哦
回复 使用道具 举报
秦久启 发表于 2014-4-25 21:12
异常在子父类覆盖中的体现;(看看这个,相信你就明白了)

1,如果父类或者接口的 ...

嗯  明白了 谢谢啊   
回复 使用道具 举报
pray 高级黑马 2014-4-25 22:46:54
9#

我有家的感觉~~你知道吗
回复 使用道具 举报
pray 高级黑马 2014-4-25 22:48:47
10#
曾经拥有的不要忘记;不能得到的更要珍惜;属于自己的不要放弃;已经失去的留作回忆。我刚来~~~嘿嘿~~
回复 使用道具 举报
pray 高级黑马 2014-4-25 22:57:31
11#
我有家的感觉~~你知道吗
回复 使用道具 举报
pray 高级黑马 2014-4-25 23:21:39
12#
你咋不理我了呢
回复 使用道具 举报
pray 高级黑马 2014-4-25 23:28:11
13#
怎么说来眼睛小真的很好
回复 使用道具 举报
顶.......
回复 使用道具 举报
接口中的方法都是抽象的,没有方法体,抛出异常jvm没法处理,所以只能自己try
回复 使用道具 举报
四川男人 发表于 2014-4-26 00:59
接口中的方法都是抽象的,没有方法体,抛出异常jvm没法处理,所以只能自己try ...

谢谢啊:)
回复 使用道具 举报
pray 发表于 2014-4-25 22:46
我有家的感觉~~你知道吗

哥们 说的啥呀!
回复 使用道具 举报
pray 发表于 2014-4-25 22:48
曾经拥有的不要忘记;不能得到的更要珍惜;属于自己的不要放弃;已经失去的留作回忆。我刚来~~~嘿嘿~~ ...

这简直是神回复啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马