Является ли объект создан каждый раз, когда конструктор вызывается в java? Здесь класс Apple наследуется от объекта Fruit.Apple. Как он наследует от Fruits, конструктор Fruit вызывается (цепочка конструктора). Это означает, что объект Fruit был инициализирован.Создается ли объект каждый раз при вызове конструктора в java?
Но вывод предполагает, что создан только один объект, объект Apple. Имеет тот же hashcode.
Может кто-нибудь объяснить?. Я ожидал, что там будут 2 объекта. Первый объект Fruit должен был быть инициализирован, а затем объект apple.
программа // Java, чтобы показать, что оба супер класса // и подкласса конструкторы относятся к тому же объекту
// super class
class Fruit
{
public Fruit()
{
System.out.println("Super class constructor");
System.out.println("Super class object hashcode :" +
this.hashCode());
System.out.println(this.getClass().getName());
}
}
// sub class
class Apple extends Fruit
{
public Apple()
{
System.out.println("Subclass constructor invoked");
System.out.println("Sub class object hashcode :" +
this.hashCode());
System.out.println(this.hashCode() + " " +
super.hashCode());
System.out.println(this.getClass().getName() + " " +
super.getClass().getName());
}
}
// driver class
public class Test
{
public static void main(String[] args)
{
Apple myApple = new Apple();
}
}
Output
Super class constructor
Super class object hashcode :366712642
Apple
Subclass constructor invoked
Sub class object hashcode :366712642
366712642 366712642
Apple Apple
Возможный дубликат [Inheritance in Java - создание объекта подкласса вызывает также конструктор суперкласса. Почему именно?] (Http://stackoverflow.com/questions/488727/inheritance-in-java-creating-an-object-of-the-club-invokes-also-the-constr) – DVarga