每当我创建一个抽象类时,我倾向于创建一个接口,并让其他代码引用该接口,而不是抽象类。通常,当我一开始没有创建接口时,我会后悔(比如必须覆盖所有实现的方法来存根类以进行单元测试,或者后来新的类不需要任何实现并覆盖所有东西,也发现自己无法扩展任何其他类)。起初,我试图通过考虑is-a vs - to来区分什么时候使用接口,什么时候使用抽象类,但后来我仍然会因为没有创建
我想知道使用抽象类和接口之间的区别,这让我有点困惑:public abstract class Animal { public abstract int getTailLength() throws IllegalStateException;这保证抽象类的实现有一个名为getTailLength()的方法,编译器强