其实你这个问题,在“黑马程序员_毕向东_Java基础视频教程第10天-03-面向对象(异常-覆盖时的异常特点)”这集视频中有详细解答。
(1)java之所以做第一个规定,个人感觉是为了提高程序的可扩展性。当然子类覆盖父类的方法时,可以抛出其他异常,但必须在子类方法中自行解决。
(2)假设父类的一个show方法抛出了AException,BException,CException3个异常,那么该父类的一个子类覆盖show方法时,只能抛出以下情况的异常:
{AException(或AException的子类),BException(或BException的子类),CException(或CException的子类)}
{AException(或AException的子类),BException(或BException的子类)}
{AException(或AException的子类),CException(或CException的子类)}
{BException(或BException的子类),CException(或CException的子类)}
{AException(或AException的子类)}
{BException(或BException的子类)}
{CException(或CException的子类)} |