Ok. Ich habe es dank euch, soweit gebracht.
Getestet funktioniert auch.

[code=Java]package Klausur8;
import java.util.HashMap;
public abstract class AbstractTabelle {
HashMap<Fahrer, Integer> liste = new HashMap<Fahrer, Integer>();
public void addFahrer(Fahrer fahrer, Integer punkte){
liste.put(fahrer, punkte);
}
public void removeFahrer(Fahrer fahrer){
liste.remove(fahrer);
}
public void update(Fahrer fahrer, Integer punkte){
if(liste.containsKey(fahrer)){
liste.remove(fahrer);
liste.put(fahrer, punkte);
}else{
liste.put(fahrer, punkte);
}
}
public void passed(Fahrer fahrer, Integer punkte){
update(fahrer, punkte);
notify(fahrer, punkte);
}
public void notify(Fahrer fahrer,Integer punkte ){
}
}
[/code]
[code=Java]package Klausur8;
public class Bergtabelle extends AbstractTabelle{
public void notify(Fahrer fahrer, Integer punkte){
fahrer.setBergpunkte(punkte);
}
}
[/code]
[code=Java]package Klausur8;
public class Sprinttabelle extends AbstractTabelle{
public void notify(Fahrer fahrer, Integer punkte){
fahrer.setSprintpunkte(punkte);
}
}
[/code]
[code=Java]package Klausur8;
public class Fahrer {
Fahrer(String name, int bergPunkte, int sprintPunkte){
this.name = name;
this.bergPunkte = bergPunkte;
this.sprintPunkte = sprintPunkte;
}
private String name;
public int bergPunkte = 0;
public int sprintPunkte = 0;
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setBergpunkte(int n){
this.bergPunkte = n;
}
public int getBergpunkte(){
return bergPunkte;
}
public void setSprintpunkte(int n){
this.sprintPunkte = n;
}
public int getSprintpunkte(){
return sprintPunkte;
}
}
[/code]
[code=Java]package Klausur8;
public class Hauptprogramm {
public static void main(String[] args){
Fahrer fahrer1 = new Fahrer("Steve", 0, 0);
Fahrer fahrer2 = new Fahrer("Nora", 10, 10);
Bergtabelle bergtabelle = new Bergtabelle();
Sprinttabelle sprinttabelle = new Sprinttabelle();
bergtabelle.passed(fahrer1, 60);
sprinttabelle.passed(fahrer2, 90);
System.out.println(fahrer1.bergPunkte);
}
}
[/code]