Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class SpaceShip {}
- class GiantSpaceShip extends SpaceShip {}
- class Asteroid {
- public void collideWith(SpaceShip sp) {
- System.out.println("Asteroid hit a SpaceShip");
- }
- public void collideWith(GiantSpaceShip gsp) {
- System.out.println("Asteroid hit a GiantSpaceShip");
- }
- }
- class ExplodingAsteroid extends Asteroid {
- public void collideWith(SpaceShip sp) {
- System.out.println("ExplodingAsteroid hit a SpaceShip");
- }
- public void collideWith(GiantSpaceShip gsp) {
- System.out.println("ExplodingAsteroid hit a GiantSpaceShip");
- }
- }
- public class DoubleDispatchTest { public static void main(String args[]) {
- Asteroid ast = new Asteroid();
- Asteroid ast1 = new ExplodingAsteroid();
- SpaceShip sp = new SpaceShip();
- SpaceShip sp1 = new GiantSpaceShip();
- ast.collideWith(sp);
- ast.collideWith(sp1);
- ast1.collideWith(sp);
- ast1.collideWith(sp1);
- }
- }
- Output:
- Asteroid hit a SpaceShip
- Asteroid hit a SpaceShip
- ExplodingAsteroid hit a SpaceShip
- ExplodingAsteroid hit a SpaceShip
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement