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

Java继承场景下对象创建:解析Fruit ob = new Apple();写法

关于Fruit ob = new Apple();的写法解析

这是面向对象编程里的**向上转型(Upcasting)**操作,因为Apple继承自Fruit,子类对象可以直接赋值给父类类型的变量,这是Java这类支持继承的OOP语言默认允许的隐式转换。

核心作用:实现多态

  • 当你有多个Fruit的子类(比如Apple、Banana),用父类Fruit类型的变量统一引用这些子类对象,后续调用方法时会自动执行子类的实现(前提是子类重写了父类的方法)。
  • 举个实际例子:如果Fruit定义了eat()方法,Apple重写了这个方法,那么调用ob.eat()时,实际跑的是Apple类里的eat()逻辑,而非Fruit的默认实现。

注意事项

  • 向上转型后,父类变量只能访问父类中定义的属性和方法,不能直接调用子类特有的方法(比如Apple的pickApple())。如果要调用子类专属方法,需要先做向下转型(Apple apple = (Apple) ob;),转型前最好用instanceof判断类型,避免出现ClassCastException。
  • 这种写法能让代码更灵活易扩展,比如写一个接收Fruit参数的方法,就能处理所有子类对象,不用为每个子类单独编写逻辑。

内容的提问来源于stack exchange,提问作者M X

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:36:22