如果要强制不变性,则不能有子类。例如java.lang.String,参见,final由于这样的原因,它是一个类:防止人们将String子类化以使其可变。
另外,为什么要首先Rect扩展Point?这不是一回事吗?从几何角度看,它们甚至不存在于相同的维中。
最后,我看不到子类上的方法问题返回更严格的类型(以及某些不支持这种语言的语言)与不变性之间的联系。

如果要强制不变性,则不能有子类。例如java.lang.String,参见,final由于这样的原因,它是一个类:防止人们将String子类化以使其可变。
另外,为什么要首先Rect扩展Point?这不是一回事吗?从几何角度看,它们甚至不存在于相同的维中。
最后,我看不到子类上的方法问题返回更严格的类型(以及某些不支持这种语言的语言)与不变性之间的联系。