Реализую пример принципа инверсии зависимостей.
Создаю интерфейс с полями id=0 и name=null (но в Java они становятся константами).
В классе, который реализует этот интерфейс, я инициализирую эти поля в конструкторе значениями.
Но они в дальнейшем всё равно отображаются как id=0 и name=null
interface IFrom {
int id = 0;
String name = null;
}
class ModelForm implements IFrom {
int id;
String name;
public ModelForm(int id, String name) {
this.id = id;
this.name = name;
}
}
class OtherModelForm implements IFrom {
int id;
String name;
public OtherModelForm(int id, String name) {
this.id = id;
this.name = name;
}
}
class MySQL {
void save(IFrom form) {
System.out.println("Saved form with id = " + form.id + " and name = " + form.name);
// Saved form with id = 0 and name = null
}
}
class WebFrameWork {
void save(IFrom form) {
MySQL db = new MySQL();
db.save(form);
}
}
public class DIP {
public static void main(String[] args) {
ModelForm modelForm = new ModelForm(1, "firstForm_name");
OtherModelForm otherModelForm = new OtherModelForm(5, "secondForm_name");
WebFrameWork webFrameWork = new WebFrameWork();
webFrameWork.save(modelForm);
webFrameWork.save(otherModelForm);
}
}
Как можно эти поля инициализировать?