You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java多态问题求助:父类引用指向子类对象调用方法的输出

Java多态场景下的方法调用结果解析

嗨,同学!先直接给你答案:执行那段代码后,输出结果是Two,对应可选答案里的第三个选项。

先把你的代码再贴一遍方便分析:

public class One { 
    public void display() { 
        System.out.print ("One"); 
    } 
} 
public class Two extends One { 
    public void display () { 
        System.out.print("Two"); 
    } 
}

你要执行的代码段是:

One object1= new Two(); object1.display();

这里核心要理解Java的多态和动态绑定机制:

  • One object1 = new Two(); 这行是父类类型的引用指向子类对象。编译的时候,object1的类型被标记为One,但它实际在内存里创建的是Two类的对象——就像你用一个装水果的盒子(父类引用)装了一个苹果(子类对象)。
  • 当调用object1.display()时,Java不会只看引用的类型,而是会去检查这个引用实际指向的对象是什么类型。因为Two类重写了One类的display()方法,所以Java会动态调用子类Two里的display()实现,自然就输出"Two"了。

简单总结:父类引用指向子类对象时,调用被重写的方法,执行的是子类的版本——这就是多态最常用的场景之一。

内容的提问来源于stack exchange,提问作者i suck at coding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:02:12