为什么 StringBuffer 允许 StringBuffer 作为其构造函数的参数,即使 StringBuffer 没有 StringBuffer 构造函数?

Why does StringBuffer allows StringBuffer as argument to its constructor even when StringBuffer doesn't have a StringBuffer constructor?

为什么下面的行没有给出编译时错误?

StringBuffer sb = new StringBuffer(new StringBuffer());

网上查了很多也找不到原因。不仅如此,它还允许 StringBuider 参数 StringBuffer sb2 = new StringBuffer(new StringBuilder());

有人请帮助我。

因为 StringBufferStringBuilder 实现了接口 CharSequence 并且 StringBuffer 具有该接口的构造函数。