/**
* 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();
}
}
}