我正在創建某種成就係統,我有一個類KillXEnemies,然後從類KillXEnemiesWeapon(使用某種武器殺死的敵人)繼承它。而當你殺死一個敵人我環槽實現對象,並補充說,敵人已經被殺死同:Java intanceof false如果有父母
if(object instanceof KillXEnemies)
((KillXEnemies)object).addEnemyKilled();
但後來因爲它是從KillXEnemies繼承KillXEnemiesWeapon被跟蹤。我知道有一個解決辦法是:
if(object instanceof KillXEnemies && !(object instanceof KillXEnemiesWeapon))
((KillXEnemies)object).addEnemyKilled();
但我要得到相當多的課程,從KillXEnemies繼承,它似乎是一個壞的解決方案有一個像20(目標的instanceof(---))
所以我想知道如果有檢查的對象不僅是KillXEnemies而不是KillXEnemiesWeapon
很多時候,當你碰上的instanceof問題或確切類檢查問題衆多,這是一個次優繼承結構的標誌。這並不完全清楚你的實例是什麼,所以有點難以分辨...... – SeKa 2013-03-15 09:03:10