`

Java构造函数的调用顺序

    博客分类:
  • J2SE
阅读更多

在多级继承的情况下,将从继承树的最上层的父类开始,依次执行各个类的构造方法,这可以保证子类对象从所有直接或间接父类中继承来的实例都被正确的初始化。 当子类的构造方法没有用super语句显示的调用父类的构造方法,而父类中又没有提供默认的构造方法[无参构造函数](jdk提供的默认构造方法)时

package com.southking.test;

public class Super {
	public static void main(String[] args) {
		new SmallDog();
	}
}

class Animal {
	public Animal(){
		System.out.println("animal");
	}
}

class Dog extends Animal{
	public Dog(){
		System.out.println("dog");
	}
}

class SmallDog extends Dog{
	public SmallDog(){
		System.out.println("small dog");
	}
}

 

分享到:
评论

相关推荐

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

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

    Java构造函数的相互调用代码示例

    Java构造函数的相互调用代码示例 Java构造函数的相互调用代码示例是Java编程中的一个重要知识点。通过使用this关键字,可以在一个构造函数中调用另一个构造函数,以减少代码量。下面是相关的知识点: 1. 构造函数...

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

    3. **构造函数调用顺序**: - 在创建子类对象时,首先调用父类的默认构造函数,然后执行子类自己的构造函数。 - 这可以通过观察构造函数的输出顺序来验证,例如,在上述例子中,"base constructor"总是先于...

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

    在探讨继承中子类与父类构造函数及静态块的执行顺序时,我们首先需要理解构造函数和静态块的基本概念及其在Java中的作用。构造函数主要用于初始化对象的状态,而静态块则是在类加载到内存中时执行的一段代码,通常...

    java构造函数及相关知识[借鉴].pdf

    Java构造函数是编程中至关重要的概念,特别是在面向对象编程中。它们主要用于初始化新创建的对象的状态。构造函数在类中定义,其名字与类名完全相同,并且没有返回类型,连void也不包含。当通过`new`关键字创建一个...

    构造函数的继承问题 笔记

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

    构造函数继承.关于java

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

    深入理解java构造器机理

    “深入理解Java构造器机理” 在 Java 编程语言中,构造器是一种特殊的方法,用于初始化对象的创建。它是 Java 类中最重要的一个概念。下面将深入讨论构造器的机理、执行顺序、作用及与其他概念的区别。 一、构造器...

    构造函数借鉴.pdf

    7. 初始化顺序:在创建子类对象时,初始化顺序是:先调用父类的构造函数(如果存在多个构造函数,需通过`super`指定),然后执行子类的构造函数。在实例化过程中,会先打印父类的构造函数输出,再打印子类的构造函数...

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

    5. **构造函数调用**:首先调用了无参构造函数,在其中又调用了带参数的构造函数 `"second"`。 6. **主函数执行**:在 `main` 方法中,首先打印了静态域 `s_a` 和 `s_b` 的初始值,然后创建了一个 `TestStaticBlock...

    14_构造函数 视频

    3. **构造函数重载**:一个类可以有多个构造函数,只要它们的参数列表不同(参数个数、类型或顺序),这就是构造函数的重载。这样可以根据需要提供多种初始化方式。 4. **构造函数的调用**:当使用`new`关键字创建...

    java kok 构造与析构函数

    在Java编程语言中,"构造函数"和"析构函数"是两个关键概念,它们在对象的生命周期管理中起着至关重要的作用。首先,我们来深入理解这两个概念。 构造函数,顾名思义,是在创建类的对象时被调用的特殊方法。它的主要...

    Java类的完整构造执行顺序

    在深入探讨Java类的完整构造执行顺序之前,我们先来明确一下Java中构造函数与类初始化的基本概念。构造函数在创建对象时被调用,用于初始化该对象的状态。而类初始化则是指在类首次被使用时,JVM执行的一系列初始化...

    函数调用.rar

    在编程领域,函数调用是程序设计的基本构造块,它允许我们将一段可重用的代码组织成独立的单元,称为函数。本主题将深入探讨函数调用的概念、类型、优点以及如何在不同编程语言中实现。 函数是具有特定功能的代码块...

    关于java中构造函数的一些知识详解

    在分析构造函数调用顺序的题目中,如下所示: ```java class Test extends X { Y y = new Y(); // 在Test的实例化过程中会先实例化Y Test() { System.out.print("Z"); } } class X { Y b = new Y(); // 在X的...

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

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

    JAVA函数使用手册

    12. **构造函数**:特殊类型的函数,用于初始化新对象。类可以有多个构造函数,根据参数列表进行重载。 13. **函数式编程**:Java 8引入了对函数式编程的支持,如Stream API,使得处理集合数据变得更加简洁和高效。...

    dotnet C# 反射扫描程序集所有类型会不会触发类型静态构造函数.rar

    4. **潜在的陷阱**:需要注意的是,静态构造函数的执行顺序可能难以预测,特别是在多线程环境中。如果多个线程同时访问同一类型,可能会导致多个线程尝试执行静态构造函数,这可能会引发错误。因此,设计静态构造...

    java Person,Student,GoodStudent 三个类的继承、构造函数的执行

    由于`Student`类的这个构造函数会进一步调用`Person`类的带参数构造函数,所以创建`GoodStudent`对象时,整个构造函数调用链是`GoodStudent -> Student -> Person`。 通过在构造函数中打印日志(如`System.out....

    java函数使用查询包

    7. **构造函数**:特殊类型的函数,用于创建对象。构造函数的名称与类名相同,没有返回类型。 8. **默认方法(Default Methods)**:在接口中定义的具有实现的方法,这是Java 8的一个新特性,允许在不破坏已有实现...

Global site tag (gtag.js) - Google Analytics