Ebb*_*ham 7 java abstract-class interface
我有一个场景,其中有几个子类有类似的实现和一些额外的方法,实现与每个子类不同.我假设抽象类对于这种情况是一个不错的选择.但是如果抽象类实现包含所有方法声明的接口会更好.或者我应该坚持使用抽象类.
简而言之,我想知道我应该在层次结构顶部而不是接口上更喜欢抽象类的场景.
如果您的子类与抽象类具有is-关系,请使用抽象类。
您可以同时具有一个抽象类和一个接口-抽象类指定实现,而接口则指定API。
收集框架就是一个例子-它具有 ArrayList extends AbstractList implements List
抽象类不必是完全抽象的.您可以定义所有子类将按原样使用的某些函数(和变量),并且只留下某些子类要实现的方法.接口具有无法定义任何功能的限制.
另一方面,接口允许类灵活地实现多个接口,而类只能扩展另一个类.从这个意义上讲,接口可能总是优于纯粹的抽象类.但是抽象类仍然有很多用途,它们包含一些重用的功能.
| 归档时间: |
|
| 查看次数: |
3871 次 |
| 最近记录: |