【发布时间】:2013-10-27 09:10:27
【问题描述】:
这里是 Java 新手。
Banana and Apple extend Fruit(Fruit 也可能是一个抽象类,因为永远不会实例化 Fruit)。
Banana 和 Apple 都有一个(完全不同的)toString() 方法。
某处的方法——我们称之为processFruit(Fruit fruit)——接受Fruit作为参数,然后调用实际接收到的Fruit的toString()方法(意思是香蕉或苹果),用于记录目的。我该怎么做?
我想做 fruit.toString() 并让它根据水果的实际情况运行 Apple.toString() 或 Banana.toString() 方法。
我不想做的事情(因为水果很多,不只是苹果和香蕉):
- 有两个不同的
processFruit方法,processFruit(Banana banana)和processFruit(Apple apple),因为代码相同 - 将收到的水果向下转换为 Apple 或 Banana,然后调用其
toString()方法
一定有别的办法,但我看不到。
【问题讨论】:
标签: java subclass superclass