Java新手在这里。
Banana and Apple extend Fruit
(Fruit
也可能是一个抽象类,因为永远不会实例化 Fruit)。
Banana
并且Apple
两者都有(完全不同的)toString()
方法。
某处的方法——我们称之为它processFruit(Fruit fruit)
——接受Fruit
作为参数,然后调用toString()
实际Fruit
接收到的方法(意思是香蕉或苹果),用于记录目的。我该怎么做呢?
我想做 fruit.toString() 并让它根据水果的实际情况运行 Apple.toString() 或 Banana.toString() 方法。
我宁愿不做的事情(因为水果很多,不仅仅是苹果和香蕉):
- 有两个不同的
processFruit
方法,processFruit(Banana banana)
并且processFruit(Apple apple)
,因为代码是相同的 - 将收到的水果向下转换为 Apple 或 Banana,然后调用其
toString()
方法
必须有另一种方式,但我看不到它。