假设我有这 3 个类(class)
class Human
public void eat()
class Lawyer extends Human
public void beEvil()
class Murderer extends Human
public void beEvil()
public void kill()
现在我有一个 Action 处理程序,我想在不知道我是什么的情况下处理 Action 。例如:
handleBeEvil(Human human)
{
..
human.beEvil(); //wont obviously work
..
}
例如,在 as3 中,我会使用
handleBeEvil(Object human)
{
human.beEvil(); //would pass compiler, work or break runtime
}
在 Java 中实现此目的的最佳方法是什么?我想避免将所有的 declarations 放在 Human 类中。
最佳答案
创建一个接口(interface)并让 Lawyer
和 Murderer
实现它(即 class Lawyer extends Human Implements Evil
):
interface Evil {
void beEvil();
}
那么你的方法就是
... handleBeEvil(Evil human)
{
..
human.beEvil(); // now this will work
..
}
关于java - java 中的 Object.callGenericMethod(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13772473/