解释多态最清晰的方法是通过一个抽象的基类(或者接口).看下面的一个抽象基类定义
public abstract class Human{
...
public abstract void goPee();
}
public class Male extends Human
{
...
@Override
public void goPee()
{
System.out.println("Stand Up");
}
}
public class Female extends Human
{
...
@Override
public void goPee()
{
System.out.println("Sit Down");
}
}
多态最完美的展现在于当我们试图让一屋子的人都去撒尿的时候:
public static void main(String args)
{
ArrayList<Human> group = new ArrayList<Human>();
group.add(new Male());
group.add(new Female());
// ... add more...
// tell the class to take a pee break
for (Human person : group) person.goPee();
}
得到的结果是:
Stand Up
Sit Down
...