您可以将接口视为“合同”。您正在定义实现该接口的类必须实现的一组方法。
另一方面,当您拥有一些您可能要实现的所有子类通用的代码时,将使用抽象类。因此,您可能有一个名为Shape的抽象类,该类具有一些通用代码,而在派生类(圆形,正方形等)中,您可能具有特定于这些形状的代码(
getArea将作为示例)。但是颜色之类的东西可能对所有形状都是通用的,因此您可以
getColor在Shape抽象类中放置一个方法。
您可以将两个想法结合起来。您可以具有实现接口的抽象类,这可以使您两全其美。
这些概念在OO中反复使用,因此理解它们很重要。您似乎过得很好:)。
因此,如果您的僵尸类具有适用于所有类型的僵尸的某些常见行为,那么听起来很适合成为抽象类。
GameCharacter如果您的游戏中还有其他角色(也许
UndeadMice是什么),您也可以考虑创建一个界面(也许是一个界面)。然后,您的
Zombie抽象类和
UndeadMouse抽象类将实现该
GameCharacter接口。


![Java的使用[接口/抽象类] [重复] Java的使用[接口/抽象类] [重复]](http://www.mshxw.com/aiimages/31/376098.png)
