Как указано @slaw, поля в интерфейсах не могут быть изменены и поэтому являются статическими и конечными.Кроме того, нет смысла объявлять поля в интерфейсе, потому что он объявляет только определенное поведение, а не состояние.Чтобы все работало так, как показано здесь, вам нужно использовать класс abstract
:
package II_1_b;
public abstract class Bezeichnung {
public protected String Bezeichnungi = "Hallo";
public abstract void setBezeichnung();
}
Класс бетона:
package II_1_b;
public class Speerwurf extends Bezeichnung { //think about how to handle SportDaten!
private double weite;
@Override
public void setBezeichnung(){ //Here we want to Override the String in
Bezeichnungi = "Test"; //the Interface
}
public Speerwurf(String n, double w, String bez) {
super(n);
this.weite = w;
bez = Bezeichnungi;
}
@Override
public void display() {
System.out.println("Speerwurf von " + this.SportlerName + ":\n"
+ weite + " Meter " + Bezeichnungi);
}
}
Поскольку мы не знаем ваш конкретный вариант использования, мыне может помочь вам, кроме как сказать вам, почему это не работает так, как должно