如果StringBuilder从AbstractStringBuilder继承它,为什么要实现CharSequence呢?

时间:2012-11-29 10:33:06

标签: java inheritance interface stringbuilder

课程StringBuilder extends AbstractStringBuilderimplements java.io.Serializable, CharSequence

AbstractStringBuilder implements Appendable, CharSequence

这两个类都是1.5。任何人都可以解释为什么StringBuilder应该实现CharSequence而不是Appendable?它无论如何都从AbstractStringBuilder继承了它们?

1 个答案:

答案 0 :(得分:3)

从语义上讲,无论是否指定implements CharSequence,它都完全相同。除了通过查看JDK代码库的历史记录之外,为什么StringBuilder明确声明这个问题无法解答,无论如何答案都不会提供很多信息。

例如,稍后可能会引入抽象超类,其中早期版本的StringBuilder确实需要implements子句。在介绍抽象类之后,这可能已被删除,但事实并非如此,没有造成任何伤害。