//Klasse som utvider den abstrakte klassen FantasiSkapning. class Drage extends FantasiSkapning{ String navn; int stoerrelse; int meterOverHavet; /* Overloading ------------------------------------------------------------------- */ //Naar vi har flere versjoner av en metode med forskjellige paramtere //Altsaa to metoder med samme navn men tar inn forskjellige argumenter. //konstruktoer hvor vi ikke trenger aa spesifisere noen verdi. public Drage(){ navn = "Freddy"; meterOverHavet = 0; stoerrelse = 20; } //konstruktoer hvor vi maa inkludere tre argumenter public Drage(String n, int moh, int st){ navn = n; meterOverHavet = moh; stoerrelse = st; } //Metode som ikke krever noe argument. public void fly(){ meterOverHavet += 100; } public void fly(int hoeyde){ fly(); meterOverHavet += hoeyde; } /* ------------------------------------------------------------ */ //"Geter" (hente metode) public int hentMoH(){ return meterOverHavet; } //@Override er ikke noedvendig for aa kompilere eller kjoere koden. //MEN det hjelper oss aa passe paa at vi faktisk overskriver en metode slik vi forventer //Her overskriver vi metoden lagLyd() fra FantasiSkapning. @Override protected void lagLyd(){ System.out.println("Rawr. Skummel drage."); } //Overskriver tramp() fra FantasiSkapning. @Override protected void tramp(){ if(meterOverHavet > 0){ System.out.println("For hoeyt til aa naa bakken."); } else{ System.out.println("Tramper som en drage."); //super.tramp(); } } //Overskriver toString metoden som ALLE objekter arver til vanlig. //Vanligvis vil denne metoden bare returnere klassenavnet og minneplass. @Override public String toString(){ return ("Hei jeg er en drage og jeg heter: " + navn); } //Overskriver equals metoden som alle objekter arver til vanlig. //Vanligvis ser bare java om de to objektene er like. //Her omdefinerer vi equals slik at den ser om det andre objektet er en Drage, og om det har samme navn. //Ellers return false. @Override public boolean equals(Object o){ if(o instanceof Drage){ Drage andreDrage = (Drage) o; if(navn == andreDrage.navn){ return true; } else{ return false; } } else{ return false; } } }