Kald af abstrakt metode.
HejJeg er i gang med en delopgave, der en dag skal blive til et matadorspil.
Som det ser ud nu, skal en spiller lande på et felt refuge, hvor spilleren modtager en bonus.
Klassen Player indeholder spillerens navn, konto og lokation.
Derudover indeholder den metoden deposit.
Player returnere spillerNavn, spillerKonto og lokation.
Klassen Field indeholder den abstrakte metode landOnField(Player p)
Den returnere feltNavn og feltNummer.
Klassen Refuge indeholder feltNavn og feltNummer. Og oplysninger om en bonus.
Metoden landOnField(Player p) {p.deposit(Bonus)}
- Denne lægger altså Bonus til spillerens konto.
Den returnere bonus.
Klassen Test opretter en Player pl1, med et navn, en konto og en lokation.
Den skal så kalde den abstrakte metode landOnField(Player p) i klassen Field.
Koden ser således ud:
-----------------------------------------------------------------
public class Player {
private String spillerNavn;
private int spillerKonto;
private int lokation;
public Player (String n, int k, int l) {
spillerNavn = n;
spillerKonto = k;
lokation = l;
}
public void deposit(int kr){
spillerKonto = spillerKonto + kr;
}
public String toString() {
String result = "Spillernavn: " + spillerNavn + " - Spillers konto: " + spillerKonto + " - Står på: " + lokation;
return result;
}
}
------------------------------------------------------------------
public abstract class Field {
protected String feltNavn;
protected int feltNummer;
abstract public void landOnField(Player p);
public String toString() {
String result = "Feltnavn: " + feltNavn + "\nFeltnummer: " + feltNummer;
return result;
}
}
------------------------------------------------------------------
public class Refuge extends Field {
private int Bonus = 2000;
public Refuge () {
feltNavn = "Refuge";
feltNummer = 1;
}
public void landOnField (Player p) {
p.deposit(Bonus);
}
public String toString() {
String result = super.toString();
result +="\nBonus: " + Bonus + " kr.";
return result;
}
}
------------------------------------------------------------------
public class Test {
public static void main(String[] args) {
Player pl1 = new Player("Jens", 10000, 1);
System.out.println(pl1);
//Her tror jeg der skal være noget der kan kalde metoden landOnField()
System.out.println(pl1);
}
}
-----------------------------------------------------------------
Programmets output ser således ud:
Spillernavn: Jens - Spillers konto: 10000 - Står på: 1
Spillernavn: Jens - Spillers konto: 10000 - Står på: 1
Den nederste linje af outputtet skal jo så udskrive det nye beløb der står på spillerens konto.
Håber virkelig i kan hjælpe mig, har googlet op og ned i lang lang tid.
