`
bluesft
  • 浏览: 8769 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

java类初始化:java构造函数的调用

阅读更多
Java类初始化的顺序:
先初始化父类的静态代码——>初始化子类的静态代码——>创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码—— >初始化父类构造函数——>初始化子类非静态代码——>初始化子类构造函数子类继承父类会先初始化父类,调用父类的构造函数,

子类的构造方法的第一条语句就是调用父类的没有参数的构造方法,如果你没有写出这条语句java虚拟机就会默认的调用,如果你显示的写了这条语句,就一定要写在构造方法中的第一条语句,不然会报错。

原因:如果父类有自己的无参构造函数,那么编译器将不再为这个父类创建无参构造函数,但是子类初始化是要调用这个无参构造函数,所以要在子类中调用父类的一个构造函数初始化父类,如果不调用,那么编译器会为子类调用父类的默认的无参构造函数,而这个函数因为有了有参函数所以不存在了,所以会有错。在c#中也是一样的。
分享到:
评论

相关推荐

    Java继承时构造函数的调用

    总结一下,Java继承中的构造函数调用规则如下: - 子类在实例化时,总会在其构造函数的第一行隐式或显式调用父类的构造函数。 - 如果父类没有无参数构造函数,且子类构造函数没有显式调用父类的有参构造函数,编译器...

    java类中静态域、块,非静态域、块,构造函数的初始化顺序

    5. **构造函数调用**:调用类的构造函数完成对象的初始化。 #### 三、示例分析 接下来,我们将通过题目给出的代码示例来进一步说明这个初始化顺序。 ```java public class TestStaticBlock { // 静态域 public ...

    聚合中类的构造函数调用顺序

    在这个主题中,“聚合中类的构造函数调用顺序”是一个关键概念,尤其是在多层嵌套的对象创建时。理解这个顺序对于编写健壮、无错误的代码至关重要。 首先,让我们明确构造函数的作用。构造函数是类的一个特殊方法,...

    java代码的初始化顺序demo

    总之,Java代码的初始化顺序是类加载的必然过程,涉及到静态和实例初始化块、构造函数、成员变量初始化以及继承关系的影响。这个demo是学习和理解这些概念的重要工具,通过实际操作可以加深对Java内存管理和对象生命...

    Java静态初始化块和对象初始化块

    这是因为在每个构造函数开始时,都会隐式地调用对象初始化块。 **比较与结合** 静态初始化块和对象初始化块的执行顺序不同。静态初始化块在类加载时执行,而对象初始化块在创建新对象时执行。它们可以相互配合,以...

    Java:构造函数与对象

    Java支持类的继承机制,子类不仅可以继承父类的方法和属性,还可以通过构造函数链来初始化继承自父类的属性。当子类需要调用父类的构造函数时,可以使用`super`关键字。 例如,在下面的代码片段中,`Vehicle`类作为...

    java私有构造函数

    1. **工厂模式**:通过将构造函数设置为私有,可以实现一个工厂方法来代替直接的构造函数调用。这种方法允许类的内部逻辑控制如何创建对象,同时保持了类的封装性。例如,可以通过一个静态工厂方法`makeShape()`来...

    Java变量初始化

    这一切都是在构造函数执行之前,变量的真正初始化是在构造函数中执行。 Java 变量初始化的时机 Java 变量初始化的时机可以分为两类:实例变量初始化和类变量初始化。 实例变量初始化 实例变量初始化可以在三个...

    18_构造函数 视频

    构造函数可以通过链式调用来组合使用,即一个构造函数调用另一个构造函数,这有助于代码复用和简化初始化过程。例如,一个构造函数可以调用另一个具有不同参数的构造函数,通过`this(参数列表)`来实现。 在Java中,...

    java中类的初始化顺序

    类的初始化涉及到多个方面,包括静态成员变量、实例成员变量、静态初始化块、实例初始化块以及构造函数等。本文将详细探讨Java中类的初始化过程及其顺序,并通过具体的代码示例来帮助理解这一过程。 #### 二、基础...

    构造函数与静态块的执行顺序

    构造函数主要用于初始化对象的状态,而静态块则是在类加载到内存中时执行的一段代码,通常用于类级别的初始化。 ### 构造函数与静态块的基本概念 构造函数是一种特殊的方法,它与类同名,并没有返回类型,其主要...

    Java语言基础入门教程 Java实训教程 4.类构造函数-this-静态属性方法-instanceof运算符共55页.pptx

    - 类中可以定义多个构造函数,每个构造函数可以根据不同的参数进行初始化。 - 在构造函数中可以通过`this`关键字调用其他构造函数,通过`super`调用父类构造函数。 - 调用其他构造函数时,必须首先调用该构造函数...

    类继承的初始化顺序类,继承的初始化顺序

    本文详细介绍了类继承中的初始化顺序问题,包括初始化的基本概念、初始化过程中的关键步骤以及如何正确处理基类和子类之间的构造函数调用。理解这些概念对于编写高效、可维护的面向对象程序至关重要。希望通过对这些...

    构造函数的继承问题 笔记

    根据题目中的描述,我们可以总结出关于构造函数调用的一些关键规则: 1. **默认构造函数的自动调用**:如果父类没有任何显式声明的构造函数,则编译器会为父类自动生成一个默认构造函数。当子类的构造函数被调用时...

    java代码初始化流程研究

    在`JvmTest.java`和`JvmTest1.java`中,可能包含了不同层次的类以及它们各自的构造函数,理解这些构造函数如何相互调用以及何时执行是深入理解Java代码初始化的关键。 此外,Java还提供了一种特殊的初始化方式——...

    构造函数继承.关于java

    2. **构造函数调用顺序**:在子类构造函数中,必须先调用父类的构造函数(使用`super`),然后再执行子类构造函数中的其他代码。 3. **构造函数的可访问性**:子类只能访问具有相同或更宽松访问级别的父类构造函数。...

    java 初始化与方法

    Java初始化与方法是Java编程语言中的核心概念,它们在程序执行过程中起着至关重要的作用。本文将深入探讨Java中的初始化过程、方法的定义与调用,以及与之相关的源码和工具应用。 首先,让我们从类的初始化开始。在...

    构造函数借鉴.pdf

    在Java编程语言中,构造函数是用来初始化对象的特殊方法。当创建一个类的实例时,构造函数会被调用。在涉及继承的情况下,构造函数的使用和调用规则变得更加复杂。以下是对构造函数继承问题的详细解释: 1. 缺省...

    Java构造函数的继承问题[收集].pdf

    以下是关于Java构造函数继承问题的关键知识点: 1. **继承默认构造函数**: - 子类只能继承父类的无参数(默认)构造函数。如果父类没有无参数的构造函数,那么子类无法直接继承任何构造函数。 - 缺省构造函数是...

Global site tag (gtag.js) - Google Analytics