使用接口可以让程序更加容易维护和扩展,比如,在任务模板中,再增加实现接口的类时,不需要修改调用该接口的类的代码。
abstract 类和接口都可以有 abstract 方法。接口中只有可以有常量,不能有变量;而 abstract 类中既可以有常量也可以有变量。abstract 类中也可以有非 abstract 方法(接口不可有非 abstract 方法)。
abstract 类中除了提供重要的需要子类重写的 abstract 方法外,也提供了子类可以继承的变量和非 abstract 方法。
如果子类除了需要重写父类的方法的 abstract 方法,还需要从父类继承一些变量或继承一些重要的非 abstract 方法,就可以考虑用 abstract 类。
如
果某个问题不需要继承,只是需要若干个类给出某些重要的 abstract 方法的实现细节,就可以考虑使用接口。