/** * 1a: Drikkbar-grensesnittet */ public interface Drikkbar { void drikkGlass(); void fyllOpp(); } /** * 1b: Drikke-klassen */ public class Drikke implements Drikkbar { protected int mengde; protected final int maks; public Drikke(int mengde) { this.mengde = mengde; maks = mengde; } public void drikkGlass() { if (mengde >= 2) { mengde -= 2; } else { mengde = 0; } } public void fyllOpp() { mengde = maks; } @Override public String toString() { return maks + " dl Drikke: " + mengde + " dl gjenstår"; } } /** * 1c: Øl-klassen */ public class Ol extends Drikke { public Ol(int mengde) { super(mengde); } @Override public void drikkGlass() { if (mengde >= 5) { mengde -= 5; } else { mengde = 0; } } @Override public String toString() { return maks + " dl Øl: " + mengde + " dl gjenstår"; } } /** * 3: Klasse- og grensesnittdefinisjoner */ class Dyr class Hund extends Dyr implements HarPels class Katt extends Dyr implements HarPels class Havdyr extends Dyr class Fisk extends Havdyr class Hval extends Havdyr implements ErPattedyr /** * 4a: Rovdyr-grensesnittet */ public interface Rovdyr { void jakt(); } /** * 4a: Planteeter-grensesnittet */ public interface Planteeter { void beskytt(); } /** * 4b: Bjørn-klassen */ public class Bjorn implements Rovdyr, Planteeter { public void jakt() { System.out.println("Bjørnen er på jakt!"); } public void beskytt() { System.out.println("Bjørnen beskytter seg selv!"); } } /** * 4b: Ulv-klassen */ public class Ulv implements Rovdyr { public void jakt() { System.out.println("Ulven er på jakt!"); } } /** * 4b: Elg-klassen */ public class Elg implements Planteeter { public void beskytt() { System.out.println("Elgen beskytter seg selv!"); } } /** * 4b: Sau-klassen */ public class Sau implements Planteeter { public void beskytt() { System.out.println("Sauen beskytter seg selv!"); } } /** * Testprogram */ public class Test { public static void main(String[] args) { Drikke drikke = new Drikke(8); Ol ol = new Ol(5); System.out.println(drikke); System.out.println("Drikker glass"); drikke.drikkGlass(); System.out.println(drikke); System.out.println("Fyller opp"); drikke.fyllOpp(); System.out.println(drikke); System.out.println(); ol.drikkGlass(); System.out.println("Drikker glass"); ol.drikkGlass(); System.out.println(ol); System.out.println("Fyller opp"); ol.fyllOpp(); System.out.println(ol); System.out.println(); Rovdyr[] rovdyr = {new Bjorn(), new Ulv()}; Planteeter[] planteetere = {new Elg(), new Sau()}; for (int i = 0; i < 2; i ++) { rovdyr[i].jakt(); planteetere[i].beskytt(); } } }