写了一个类 InventoryHandler 继承一个父类 DefaultHandler。父类中定义的方法抛出了一个SAXException: public void fatalError(SAXParserException spe) throws SAXException
在子类中实现该方法,但定义时并没有抛出例外: public void fatalError(SAXParserException spe)
程序竟然可以正常编译,感到很奇怪。
___________________________________________________________________________
答曰:子类继承父类,继承的方法所抛出的例外可以小于父类抛出的例外,不能大于父类抛出的例外,即子类方法抛出的例外不能是父类相应方法抛出例外的父类,但可以是子类,当然也包括不抛出例外,所以程序正确编译,同时,父类方法没有抛出的例外,子类相应方法不能抛出。
问题得解。