package Strategy; public interface Fighter { public void attack(); public void defend(); // new in java 8 // static method in interface public static void fight(Fighter f1, Fighter f2) { f1.attack(); f2.defend(); f2.attack(); f1.defend(); } // constant in interface public static final int MAXSTRENGTH = 100; // defender method // default behavior for required method // class might not override --> gets default behavior // BUT if implementing two interfaces with same method name // class MUST override public default void prepareForFight() { System.out.println("PREPARE YOURSELF"); } }