public static void main(String[] args) { Ball soccer = new SoccerBall(); Ball base = new BaseballBall(); Ball american = new AmericanFootballBall(); Ball basquetBall = new BaseballBall(); Ball tennisBall = new TennisBall(); Ball volleyBall = new VolleyBallBall(); Ball golfBalll = new GolfBall(); Ball cristallBall = new CristalBall(); System.out.println(soccer.roll()); // System.out.println(soccer.performBounce()); soccer.setBounceBehavior(new NormalBounce()); System.out.println(soccer.performDeflate()); System.out.println(soccer.performInflate()); System.out.println(); System.out.println(american.roll()); // System.out.println(american.performBounce()); american.setBounceBehavior(new IrregularBounce()); System.out.println(american.performDeflate()); System.out.println(american.PerformCrash()); System.out.println(american.performInflate()); System.out.println(); System.out.println(base.roll()); // System.out.println(base.performBounce()); base.setBounceBehavior(new IrregularBounce()); System.out.println(base.performDeflate()); System.out.println(base.PerformCrash()); System.out.println(base.performInflate()); System.out.println(); System.out.println(basquetBall.roll()); // System.out.println(basquetBall.performBounce()); basquetBall.setBounceBehavior(new NormalBounce()); System.out.println(basquetBall.performDeflate()); System.out.println(basquetBall.PerformCrash()); System.out.println(basquetBall.performInflate()); System.out.println(); System.out.println(tennisBall.roll()); // System.out.println(tennisBall.performBounce()); tennisBall.setBounceBehavior(new NormalBounce()); System.out.println(tennisBall.performDeflate()); System.out.println(tennisBall.PerformCrash()); System.out.println(tennisBall.performInflate()); System.out.println(); System.out.println(volleyBall.roll()); // System.out.println(volleyBall.performBounce()); volleyBall.setBounceBehavior(new NormalBounce()); System.out.println(volleyBall.performDeflate()); System.out.println(volleyBall.PerformCrash()); System.out.println(volleyBall.performInflate()); System.out.println(); System.out.println(golfBalll.roll()); // System.out.println(golfBalll.performBounce()); golfBalll.setBounceBehavior(new NormalBounce()); System.out.println(golfBalll.performDeflate()); System.out.println(golfBalll.PerformCrash()); System.out.println(golfBalll.performInflate()); System.out.println(); System.out.println(cristallBall.roll()); // System.out.println(cristallBall.performBounce()); cristallBall.setBounceBehavior(new NotBounce()); System.out.println(cristallBall.performDeflate()); System.out.println(cristallBall.PerformCrash()); System.out.println(cristallBall.performInflate()); }