java代码如下:
package exception;class Ball extends Exception{};
class BaseBall extends Ball{};abstract class Inning{
public Inning() throws Ball{}
public void play() throws BaseBall{}
}class ABaseBall extends BaseBall{}
class Rain extends Exception{}interface rain{
public void play() throws Rain;
public void cloud() throws ABaseBall;
}
public class Test20  extends Inning implements rain{
    public Test20() throws Ball,Rain{}
    public void play() throws BaseBall{} ??    public void cloud(){}
}打问号的那一行无法编译通过,我看到java编程思想上面说当一个子类继承一个基类,又实现一个接口。接口与基类里面有一样的函数时,子类能抛出的异常只能是基于基类的。在上面这代码中,Rain类play()函数抛出的异常和Inning中play()函数的异常一样,但是无法编译通过。求大神指点我。