ahm*_*tab 5 java abstract-class numbers
我想知道为什么这段代码的结果:
Number x = 3;
System.out.println(x.intValue());
System.out.println(x.doubleValue());
Run Code Online (Sandbox Code Playgroud)
产生
3
3.0
因为 Number 是Java 中的一个抽象类。
所以当我需要使用它时 - 我可以将它与一些它的子类一起使用,比如 Integer、Double ...等。现在我想知道这部分代码究竟是如何工作的:
Number x = 3;
Run Code Online (Sandbox Code Playgroud)
所以当你这样做时
Number x = 3;
Run Code Online (Sandbox Code Playgroud)
被编译为
Number x = new Integer(3);
Run Code Online (Sandbox Code Playgroud)
java中的Number在没有子类的情况下如何工作?
这是一个错误的假设。数字类有子类。如果你看一下 Integer 类的定义。
查看Integer类的定义
public final class Integer
extends Number
Run Code Online (Sandbox Code Playgroud)
它是 Number 的子类,因此可以很好地编译。
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |