当前位置: 首页 > 知识库问答 >
问题:

上向转换在Java中是如何工作的?

杜骏祥
2023-03-14
    null
public class ObjPair {
    Object first;
    Object second;

    public ObjPair(Object first, Object second) {
        this.first = first;
        this.second = second;
    }

    public Object getFirst() {
        return first;
    }    
    public Object getSecond() {
        return second;
    }

    public static void main(String[] args) {
        ObjPair objPair = new ObjPair("A",2.2); // Goes widning conversion
        System.out.println(objPair.getFirst());
        System.out.println(objPair.getSecond());
    }
}
    null
  • 它如何记住字符串和double,加宽/上转换应该记住超类的状态和方法。
  • 如何访问子类类型和值?

共有1个答案

公宜春
2023-03-14

对象引用的强制转换不会更改对象。它只允许将它分配到不同类型的引用中。对象本身保持不变。

在您的示例中,它需要两个Object引用,它检查兼容性(没有问题),然后在Object类型的变量中设置引用。实例本身不变。如果它们的方法重写Object方法,则将调用重写方法。

因此,当涉及到打印对象的部分时,它只需使用string.valueOf,它调用对象的tostring()方法。从object变量访问的实例实际上是string对象,string重写tostring()以返回其自身。Double还重写ToString。调用这些重写,因为该实例仍然是string的实例和double的实例。只有引用是object

 类似资料:
  • 问题内容: 我将JComboBox与自定义类对象一起使用,并且equals方法被覆盖,并且非常深入地集成到代码中。 问题是,如果在JComboBox下拉列表中两个对象相等,那么如果选择了一个,则全部选中,并且get selected索引返回-1。 有没有一种方法可以将a强制转换为a ?我试过了 和 其中是的父项,是的扩展项,但它们都不编译。 我需要的只是JComboBox,不要使用重写的equal

  • 我经常把文本输出到文件中。我想知道:是如何工作的? 当我调用时,它是否在文件上写入文本?如果它不写文本,我需要使用flush函数来写数据吗? 例如: 如果while循环中发生错误,文件将在不写入数据的情况下关闭。如果我在while循环中使用函数,那么为什么要使用?如果我错了,请纠正我。

  • 问题内容: 因此,我使用界面的swing创建了Java程序,但我没有意识到将其转换为android应用程序有多么困难。我有什么办法可以轻松地转换或重建要在android市场上出售的程序?如果不能,那么任何人都可以将我指向任何资源来帮助构建android。 问题答案: 我不久前做了同样的事情。尽管没有程序可以直接将其转换。Java代码和android代码非常相似。由于android不使用swing的

  • 问题内容: 我正在尝试调试Java中涉及ClassCastException的问题。为了解决该问题,我需要知道从Object转换为特定类型时发生了什么。 谁能向我解释Java Cast操作符如何在Java级别和JVM级别工作? 问题答案: JLS是否足够好? 强制转换将应用于强制转换操作符的操作数(第15.16节):操作数表达式的类型必须转换为强制转换操作符显式命名的类型。铸造上下文允许使用: 身

  • 问题内容: 我试图理解Java的多态性,但是我有一个关于向下转换对象的问题。假设在此示例中,我有两个子类Dog和Cat,它们从超类Animal继承 据我了解,向下转换对象的唯一方法是,如果该对象已经是好类型,如下所示: 这样行吗? 但是,如果我想创建一个普通的动物而又不知道它会是什么,然后在知道时将其投放,该怎么办? 这会在运行时抛出ClassCastException吗? 我发现这样做的唯一方法

  • 我在这个网站上看到过关于javafx中旋转的问题,但我似乎不太明白。下面是一些代码: 为什么当我改变角度时,矩形开始出现在随机位置?例如,当我将角度设置为 180 时,矩形出现在中间。我的理解是,矩形围绕 X:150 和 Y:225 以指定的角度移动。但是,当我将角度设置为180时,我完全错了。你们能帮帮我吗? 编辑:在阅读和看到回答这个问题的代码时,我想我发现了一个新问题。如何设置pivotX和