一、两个不同的接口拥有相同的方法:public abstract play(),其子接口Rollable继承Playable,Bounceable两个接口时,就获得了两个并列的public abstract play(),而实现该Rollable接口的类就应该实现该接口的所有方法,重写这两个方法时无法确定到底实现了那个接口的方法,而这里只实现了其中的一个(甚至不知道是哪一个)play()方法,因此在设计上建议使用匿名内部类
二、在Rollable接口中定义了一个静态常量,设计的本义是不希望改变,但是在实现该接口的类中,却试图采用“继承”的形式修改该常量的引用!
三、综上,最重要的错误其实是设计上的错误:接口和类、方法重写之间的关系没有真正理清楚!
见下图,红色字体为出错的地方! |