java 编程 创建对象的问题。

第10行,操作符 new调用 了 A的构造方法。
1、请问这里是创建了三个对象吗?(Object、B、A)如果是的话,剩余两个对象是匿名的去哪里了?
2、第17行,隐藏了 super();对吗?
3、将第10行改为,Object a = new A(3);和原来的有什么区别?谢谢!

    错误,只创建了一个对象

    正确,子类构造方法第一行必须调用父类构造方法,如果没有显式调用将隐式调用父类的无参构造方法,如果此时父类没有无参构造方法将导致编译错误

    a是一个Object类型的引用,在a上只能调用Object类拥有的方法,不能调用A类或B类有而Object类没有的方法。

追问

1、创建子类的时候,自动调用了父类的无参构造方法(或显示调用有参构造方法),那既然构造方法都使用了,为什么没有构造出父类对象呢?
先采纳了,希望能追答复一下~

追答

子类中调用父类的构造方法,构造的是子类对象中的父类部分。
创建对象的关键字是new,new出现了多少次,就有多少个对象被创建。

追问

谢谢,明白了~

温馨提示:内容为网友见解,仅供参考
无其他回答

java新建对象的问题
匿名对象:没有声明引用的对象,一般是Has-a关系中的类创建的,直接在方法中赋值。Class A = new B(参数表);引用的声明都是在对象创建之前的(如果你不是创建的匿名对象的话)。1、通常情况下(在没有上述任何修饰词的情况下,只包含属性和方法的一般类)对象创建过程如下:给对象分配内存空间(准...

在Java中new一个对象的流程是怎样的?
在Java中使用new关键字创建一个对象,主要包含五个关键步骤:1. 类加载 当首次使用类,JVM通过类加载器将字节码加载至内存,形成Class对象。2. 内存分配 在内存中分配给对象一块连续区域,用于存储实例变量及相关信息。3. 初始化零值 为实例变量赋予默认零值,基本类型为对应类型零值,引用类型则初始化为...

Java 创建对象的四种方法
一、使用new方式创建对象是Java中最基本也是最常用的方法。通过new操作符,我们可以直接实例化一个类,从而创建出一个新对象。二、使用反射机制创建对象可以让我们在运行时动态地获取类信息,生成对象。这种灵活性在某些特定场景下非常有用,如动态加载类或对象。四、序列化创建对象是将对象的状态信息转换为...

Java对象是如何创建出来的?
创建Java对象看似简单,只需使用new关键字即可:Object obj = new Object();。然而,深入探索背后的原理,我们将会了解到,对象的创建过程远不止这一行代码。首先,JVM会进行类加载检查,确保类已被加载、解析和初始化。如果类尚未完成这些步骤,JVM会通过类加载子系统进行加载。类加载检查通过后,JVM会...

Java在创建对象时,比如说Person a = new Person( ); 当中的( )小括号...
这个是因为你没有写自己的构造函数的的原因。如果你的类是这样的:public class Person { public Person(String name) { } } 这样你newPerson的时候就必须带参数了。

java中用new创建对象时,比如A a=new A()与a=new A()有什么区别呢,为什 ...
A a = new A(); \/\/ OK A a;a = new A(); \/\/ OK A a = new A();a = new A(); \/\/ OK,这等于再次赋值,原先的被覆盖。

java 这样在一个类中定义一个对象数组为什么会出错
第一种是创建一个方法(比如说类的构造函数或者 main 函数),然后把第二句放在这个方法里。public class Www { Student[] a = new Student[3]; public Www() { a[0] = new Student(); } }第二种是将第二句用大括号括起来。public class Www { Student[] a = new ...

你应该知道的Java创建对象的四种方式
首先,使用new运算符创建对象是最直接的方式。例如,创建一个表示宠物的类Dog,通过new Dog("小黑", 3)语句,我们可以实例化出一个名为"小黑",年龄为3岁的Dog对象。其次,Java的反射技术允许在运行时获取类的信息并操作对象。通过反射可以创建对象并访问其属性和方法。获取类对象后,调用newInstance()...

一个Java对象创建的全过程详解
在Java编程中,创建对象通常仅需使用关键字"new",但存在一些例外,如对象复制和反序列化过程。首先,当虚拟机遇到new指令时,它会检查类的符号引用是否已加载、解析和初始化。若未完成,会启动相应的类加载流程。类加载完成后,对象所需内存的大小确定,接着进行内存分配。虚拟机根据所采用的垃圾回收机制...

JAVA String创建对象问题
问题1,创建了四个对象 这个问题一般是很容易混淆的两个概念: String s1="hello"; 与String s2=new String("hello");这两种写法jvm的内存分配时不一样的处理方式。String s1 ="hello";可能创建一个或者不创建对象,如果"hello"这个字符串在java String池里不存在,会在java String池里创建一个...

相似回答