Я хочу создать экземпляр дочернего класса в Java из родительского класса. Однако, когда я делаю это и пытаюсь вызвать родительский метод из конструктора дочернего элемента (с супер), возвращаемое поле равно нулю. Если бы я изменил это на создание экземпляра родителя из метода main(), поле возвращает ожидаемое значение (строку). Я не уверен, что здесь происходит, кто-нибудь может объяснить?
Основной класс:
public class MainFunc {
public static void main(String[] args) {
javaClass jv = new javaClass("Bobby");
jv.makeJ2();
}
}
Родительский класс:
public class javaClass {
String name;
public javaClass(){
}
public javaClass(String s) {
setName(s);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void makeJ2 (){
javaClass2 jv2 = new javaClass2();
}
}
Детский класс:
public class javaClass2 extends javaClass {
String name;
public javaClass2() {
super();
String superTitle = super.getName();
System.out.println("HEY " + superTitle);
}
}
Это возвращает:
HEY null
Вместо:
HEY Bobby