/*
注意:异常声明在函数上
异常在子父类覆盖时的体现
1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者异常的子类
2.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出分父类异常的子集。
3.如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常
如果子类方法发生了异常。就必须要进行try处理,绝对不能抛。
*/
/*特点总结
1.层次关系
----AEception
BException
----CException
2.逻辑关系
父类的问题,子类继承了,子类出现问题,只能出现父类的问题,而不能出现其它的问题,就像是遗传一样。
*/
class AEception extends Exception
{
}
class BException extends AEception
{
}
class CException extends Exception
{
}
class Fu
{
void show()throws AEception
{
}
}
class Text
{
void funtion(Fu f)
{
try
{
f.show(); /*调用了有问题的方法,要么抛出去,要么try去接收处理这个异常*/
}
catch(AEception e)
{
}
}
}
class Zi extends Fu
{
void show()throws AEception /*只能抛出A异常或者B异常,不能抛C异常*/
{
}
}
class Demo
{
public static void main(String args[])
{
Text t=new Text();
t.funtion(new Zi());
}
}