Базовый класс:
public class Inheritance {
int i;
Inheritance() {
System.out.println("I am in base class" + i);
}
}
Производный класс:
public class TestInheritance extends Inheritance {
TestInheritance() {
System.out.println("I am in derived class");
}
public static void main(String[] args) {
TestInheritance obj = new TestInheritance();
}
}
Это то, что я имею в виду относительно того, что происходит выше.
Когда я создаю объект производного класса по умолчанию, вызывается super()
и вызывается конструктор базового класса и инициализирует переменную i
.
Теперь, мой вопрос: имеет ли конструктор в этом случае только инициализацию переменной i
и не создает конкретный объект класса?
Из того, что я прочитал до сих пор, создается только один объект - производного класса, в котором есть переменная i
.
Но с момента вызова конструктора базового класса и момента времени, когда конструктор производного класса называется тем, как /where i
хранится в памяти?
И что будет в случае, если базовый класс является абстрактным.
Я был бы очень признателен, если бы знал, что происходит в памяти в разные моменты времени.
Если я сказал что-то принципиально неправильное, пожалуйста, дайте мне знать. Я действительно хочу знать, как это работает.