Double Dispatch example improvements.

This commit is contained in:
Ilkka Seppala 2015-05-09 18:36:37 +03:00
parent 648ead096c
commit 082f4730ee
2 changed files with 16 additions and 8 deletions

View File

@ -13,21 +13,21 @@ public class Meteoroid extends GameObject {
@Override
public void collisionResolve(FlamingAsteroid asteroid) {
System.out.println(String.format("%s hits %s", asteroid.getClass().getSimpleName(), this.getClass().getSimpleName()));
System.out.println(String.format("%s hits %s.", asteroid.getClass().getSimpleName(), this.getClass().getSimpleName()));
}
@Override
public void collisionResolve(Meteoroid meteoroid) {
System.out.println(String.format("%s hits %s", meteoroid.getClass().getSimpleName(), this.getClass().getSimpleName()));
System.out.println(String.format("%s hits %s.", meteoroid.getClass().getSimpleName(), this.getClass().getSimpleName()));
}
@Override
public void collisionResolve(SpaceStationMir mir) {
System.out.println(String.format("%s hits %s", mir.getClass().getSimpleName(), this.getClass().getSimpleName()));
System.out.println(String.format("%s hits %s.", mir.getClass().getSimpleName(), this.getClass().getSimpleName()));
}
@Override
public void collisionResolve(SpaceStationIss iss) {
System.out.println(String.format("%s hits %s", iss.getClass().getSimpleName(), this.getClass().getSimpleName()));
System.out.println(String.format("%s hits %s.", iss.getClass().getSimpleName(), this.getClass().getSimpleName()));
}
}

View File

@ -13,26 +13,34 @@ public class SpaceStationMir extends GameObject {
@Override
public void collisionResolve(FlamingAsteroid asteroid) {
System.out.println(String.format("%s hits %s", asteroid.getClass().getSimpleName(), this.getClass().getSimpleName()));
System.out.println(String.format("%s hits %s. %s is damaged! %s is set on fire!",
asteroid.getClass().getSimpleName(), this.getClass().getSimpleName(),
this.getClass().getSimpleName(), this.getClass().getSimpleName()));
setDamaged(true);
setOnFire(true);
}
@Override
public void collisionResolve(Meteoroid meteoroid) {
System.out.println(String.format("%s hits %s", meteoroid.getClass().getSimpleName(), this.getClass().getSimpleName()));
System.out.println(String.format("%s hits %s. %s is damaged!",
meteoroid.getClass().getSimpleName(), this.getClass().getSimpleName(),
this.getClass().getSimpleName()));
setDamaged(true);
}
@Override
public void collisionResolve(SpaceStationMir mir) {
System.out.println(String.format("%s hits %s", mir.getClass().getSimpleName(), this.getClass().getSimpleName()));
System.out.println(String.format("%s hits %s. %s is damaged!",
mir.getClass().getSimpleName(), this.getClass().getSimpleName(),
this.getClass().getSimpleName()));
setDamaged(true);
}
@Override
public void collisionResolve(SpaceStationIss iss) {
System.out.println(String.format("%s hits %s", iss.getClass().getSimpleName(), this.getClass().getSimpleName()));
System.out.println(String.format("%s hits %s. %s is damaged!",
iss.getClass().getSimpleName(), this.getClass().getSimpleName(),
this.getClass().getSimpleName()));
setDamaged(true);
}
}