今天,边肖将与你分享一篇关于Java中的扩展是否必须代表继承的文章。边肖觉得内容挺好的,现在分享给大家,很有参考价值。有需要的朋友一起看看吧。
Java中用哪个关键字来表示继承?延伸!没错,这是Java小学生都知道的常识。但是extends还有别的意思吗?在任何情况下都一定代表继承吗?不一定。
我们知道Collections类有一个静态方法sort,用于对列表进行排序。该方法要求列表中的元素类必须实现Comparable接口。让我们来看看源代码:
.
@SuppressWarnings('未选中')
公共静态T扩展可比?超级T空排序(列表列表){
list . sort(null);
}
.
明明这个方法的参数是一个List,List的泛型类型是T,却说“T扩展Comparable”(以下)?T“我们暂时不考虑),按照过去的思路,也就是说T类必须继承自Comparable。这与众所周知的Collections.sort()不同。所以我们必须熟悉这样一个概念:
在Java的泛型中,extends关键字的意思是“继承或实现”。
也就是说,通用扩展意味着“是一个”。那么Java为什么不创建一个新的“is”关键字来表示这个意思呢?要知道增加一个关键词的成本是很高的。
让我们再来看看泛型中extends和super的区别:
?Extends T定义了参数类型的上限:参数类型必须是T或T的子类型。
?T定义了参数类型的下限:参数类型必须是T或者是T的超类型。
总结
这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。