本节书摘来自异步社区《Android游戏开发详解》一书中的第3章,第3.4节多态,作者 【美】Jonathan S. Harbour,更多章节内容可以访问云栖社区“异步社区”公众号查看
3.4 多态Android游戏开发详解你可能会问,为什么我们必须创建一个接口和一个类,来定义一个单个的King类呢?你可能会告诉自己,现在Human接口还真的做不了太多事情,你说的绝对没错。
使用接口允许我们创建一类对象,但是,在学习多态之前,我们很难意识到这对程序来说意味着什么。
来看一下如下所示的方法。
public void feed(Human h) { System.out.println("Feeding Human!"); h.eat(); }该方法可以接受一个单个的Human类型的参数。实际上,它可以接受实现了Human接口的一个类的任何对象实例。这很有用,因为在单个的程序中,我们可能创建多个类,例如,Villain、Professor和SushiChef,而它们都扩展了Human接口。
这意味着如下所示的示例都能够工作。
// Elsewhere in same program King kong = new King(); Villain baddie = new Villain(); Professor x = new Professor(); SushiChef chef = new SushiChef(); // Any Human can be fed: feed(kong); // A King is Human feed(baddie); // A Villain is Human feed(x); // A Professor is Human feed(chef); // A SushiChef is Human这只是关于多态能够做什么的一个小例子,它是一种有趣的方式,描述了与多种类型的对象交互的一个通用方法。在后面的各章中,我们将以一个更加实用的方式介绍接口和多态。