【发布时间】:2017-07-04 17:11:51
【问题描述】:
根据 List 中的不同对象类型调用类的不同方法的最佳方法绝对是什么?
常见例子:
public class Dog extends Animals{
...
public void say(){
System.out("i'm a dog");
}
public class Cat extends Animals{
...
public void say(){
System.out("i'm a cat");
}
public class OtherClass {
public void route(){
List<Animals> aList = new ArrayList<>();
a.add(new Dog());
a.add(new Cat());
for(Animals a:aList)
methodOverloaded(a); ---> that's the point <---
}
public methodOverloaded(Dog d){
d.say();
}
public methodOverloaded(Cat c){
c.say();
}
}
当然,隐喻的目标是在第一次迭代时打印I'm a dog,在第二次运行时打印I'm a cat methodOverloaded()。
我试过了
- 访客模式
instanceOf()
但我正在寻找更好的解决方案。
编辑:我非常想调用示例OtherClass 的重载方法。
【问题讨论】:
-
请阅读我的更新答案,也许现在会更清楚。
-
非常感谢
标签: java polymorphism overloading instanceof visitor-pattern