假设我有这个
interface Movable
{//some stuff}
Run Code Online (Sandbox Code Playgroud)
我有
class Car implements Movable
{//some stuff}
Run Code Online (Sandbox Code Playgroud)
也许我有
class Bike implements Movable
{//some stuff}
Run Code Online (Sandbox Code Playgroud)
我注意到如果我有这个:
ArrayList<Movable> movableThings = new ArrayList<Movable>();
movableThings.add(some kind of Car)
movableThings.add(some kind of Bike)
movableThings.add(some kind of Bike)
Run Code Online (Sandbox Code Playgroud)
这可以称为:
for(Movable m: movableThings)
Run Code Online (Sandbox Code Playgroud)
但如果我这称呼我,我会得到不兼容的类型:
for(Bike b: movableThings)
Run Code Online (Sandbox Code Playgroud)
有人可以解释,也许可以提供更好的方法吗?我知道我可以使用foreach Movable m:movableThings然后使用instanceof来检查自行车但是还有另外一种方法吗?
编辑:好的,谢谢你们澄清......所以我想我要么使用instanceof,要么重新设计我的游戏
java ×1