书中发现的有趣实例
- 图一
- 图二
- 如果我面试,会问问图一和图二的输出结果是什么,如果答对了,会问问为什么?
- 总结
两个方法有相同的名称和特征签名,本来不参与重载的返回值,变成了不一致的描述符,所以可以共存于一个Class。
如果是正常的Class,如图一,会因为类型擦除,变成裸类型,并且没有有差异的标识符,导致报错。
如果是正常的Class,没有涉及泛型问题,哪怕存在差异的返回值,但是返回值不被包含在特征签名里面,依然报错。
所以,这是一个细化起来,比较复杂的问题,如果要弄懂,一定要明白:特征签名包含什么、泛型底层是裸类型等。