(Verständnis-)Problem mit Unterklasse

  • Themenstarter Themenstarter David Nienhaus
  • Beginndatum Beginndatum
D

David Nienhaus

Gast
Hallo liebe Leute,

ich habe folgendes Problem:

Ich habe eine abstrakte Klasse "Charakter" und zwei Unterklassen "Spieler" und "Penner"
Außerdem habe ich eine Hauptklasse "Spiel" in der das Programm abläuft.
In Klasse Spiel sage ich:

Code:
private Charakter aktuellerCharakter;

später im code sage ich:
Code:
aktuellerCharakter = aktuellerRaum.gibCharakter();
// aktuellerRaum.gibCharakter gibt Objekt der Klasse Penner zurück

noch später im code sage ich dann:
Code:
aktuellerCharakter.angriff()

Hier bekomme ich dann eine Fehlermeldung. Die Methode angriff() ist unbekannt.
Ich verstehe nicht wieso. Ich habe die Methode in der Klasse Penner deklariert. Und da aktuellerCharakter ja vorher zum Objekt der Klasse Penner gemacht wird sollte das doch gehen. Wo ist mein Denkfehler?
 
Java:
if (aktuellerCharakter instanceof Penner) {
((Penner)aktuellerCharakter).angriff();
}

So würde es theoretisch noch gehen. Das ganze spricht aber eher dafür, deine Klassenstruktur zu überdenken.
 
Naja, vielleicht ist es ja ganz einfach so, dass jeder Charakter einen Angriff starten kann:
Java:
public abstract class Charakter {
    public abstract void angriff();
}
public class Spieler extends Charakter {
    public void angriff() {
        System.out.println("Spieler greift an.");
    }
}
public class Penner extends Charakter {
    public void angriff() {
        System.out.println("Penner greift an.");
    }
}
public class  Spiel {
    public void angriff() {
        aktuellerRaum.gibCharakter().angriff();
    }
 

Neue Themen


Zurück
Oben