重写的方法可以引发Exception,只要被重写的方法也抛出相同的Exception。您不能 引入 新的例外。
那么,为什么不能引入新的Exception?
OOP的中心概念之一是使用抽象类型,并且所有子类型都可以视为抽象类型。参见里斯科夫替代原理
您不能引入更广泛的行为的原因是,如果抽象类型(超类或接口)中的方法未引发Exception并且您将对象引用为该类型,则可能会出现意外的行为:
Alpha alpha = new Beta();// At this point, the compiler knows only that we have an Alphaalpha.myMethod();
如果阿尔法的
myMethod()不抛出一个异常,但测试版的 呢 ,我们可以得到在上面的代码意外的异常。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)