java - 为什么Java的数字类不相互扩展?

标签 java inheritance numbers

在 Java 中,为什么内置的数字类不相互扩展? Long 不应该扩展 Integer 扩展 Short 扩展 Byte,Double 扩展 Float 吗?

通常,当存在"is"关系时,通常会使用继承。那么每个 Integer 都是 Long 吗?我想是的。

我能想到的唯一可能的解释是无法正确处理溢出。例如,(byte)100 + (byte)100-112,而 (short)100 + (short)100200。然而,似乎应该有比保留错误行为更好的理由。

最佳答案

您的问题实际上可以通过两种不同的方式来解决:

如果我们谈论的是原语,那么关系就倒过来了。

但是,如果您询问的是 IntegerDoubleLong 等类,那么所有数。

重要的是要指出,在 Java 中作为对象的数字源于一个常见的 Numberhere .像您描述的那样在层次结构中分解它们没有多大意义,因为所有数字之间的方法本质上是相同的,尽管它们占用的内存大小不同。

简而言之,Java 中的层次结构是由类共享的关系(通常是方法)定义的,而不是它们在内存中占用的大小。

关于java - 为什么Java的数字类不相互扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26878117/

相关文章:

java - org.elasticsearch.transport.NodeDisconnectedException : [][inet[localhost/127. 0.0.1:9300]][cluster/nodes/info] 断开连接

java - 如何确定 JComboBox ActionListener 是由代码触发还是由用户触发

python - Django CBV继承: Overriding attributes

c# - 使用接口(interface)问题的继承转换

java - 如何使用 Spring Boot 创建 mongodb 通用 REST API?

R-如何按行索引号对数据帧进行重新排序

java - 如何让java JMF使用多个图像制作视频?

java - 为每个商店的多个价格设计数据库结构

excel - 将单元格的内容括在括号中,ms excel,格式

arrays - ANSI C - 数组的较高元素