如何用多态来替换instanceof关键字?

时间:2016-10-03 12:07:28

标签: java

        while (Board[randRow][randColumn] instanceof Wumpus || Board[randRow][randColumn] instanceof Gold
                || Board[randRow][randColumn] instanceof Pit)

如何用polymorphism替换instanceof?

1 个答案:

答案 0 :(得分:2)

WumpusGoldPit有什么共同之处? 让我们说bot / monster对这种类型的单元感兴趣。

所以定义一个接口:

public interface Cell{
    boolean isInterestedForMonster();
} 

并为WumpusGoldPit

实施
public class Gold implements Cell{
    @Override public boolean isInterestedForMonster(){
        return true;
    }
}

使用:

Cell cell = Board[randRow][randColumn];
while(cell.isInterestedForMonster()){
    //Do something
}

这就是你可以用多态“

替换'instanceof'的方法