在java中,每次调用构造函数时都会创建对象吗?
在java中,每次调用构造函数时都会创建对象吗? 这里苹果类继承自水果。苹果对象被创建。当它继承自水果时,水果的构造函数被称为(构造函数链接)。这意味着水果的对象已经初始化 但输出表明只创建了一个对象,即Apple对象。这两个对象都有相同的哈希代码 有人能解释一下吗?我希望有两个对象。第一个水果对象应该初始化,然后是苹果对象 //一个Java程序来演示这两个超类 //子类构造函数引用同一个对象在java中,每次调用构造函数时都会创建对象吗?,java,inheritance,constructor,Java,Inheritance,Constructor,在java中,每次调用构造函数时都会创建对象吗? 这里苹果类继承自水果。苹果对象被创建。当它继承自水果时,水果的构造函数被称为(构造函数链接)。这意味着水果的对象已经初始化 但输出表明只创建了一个对象,即Apple对象。这两个对象都有相同的哈希代码 有人能解释一下吗?我希望有两个对象。第一个水果对象应该初始化,然后是苹果对象 //一个Java程序来演示这两个超类 //子类构造函数引用同一个对象 // super class class Fruit { public Fruit()
// 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
构造函数调用不会创建新对象,而是初始化新创建的对象 使用
new Apple()
创建Apple
对象时,将创建单个对象。该对象属性的初始化涉及执行多个构造函数(Apple
、Fruit
和object
)。对象的构造函数用于指定对象创建时所需的任何细节,如设置一些变量
使用new Apple()的那一刻就是创建对象并初始化构造函数中的代码的地方。可能重复的