`

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对象初始化过程中构造器调用的顺序,及作用。

    java中静态代码块与构造方法的执行顺序判断

    对静态代码块以及构造函数的执行先后顺序,一直很迷惑,直到最近看到一段代码,发现终于弄懂了,所以这篇文章主要给大家介绍了关于如何判断java中静态代码块与构造方法的执行顺序的相关资料,需要的朋友可以参考下。

    java kok 构造与析构函数

    进入全屏解码显示时间需要2S以上时间,在屏幕中央显示提示:"正在读取图片,请稍侯…

    Java开发技术大全(500个源代码).

    HelloNative.java 准备调用C函数的java文件 HelloNative.lib 用VC编译生成的静态库文件 HelloNative.obj 用VB编译生成的目标文件 HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个...

    浙工商java试卷

    一般在创建新对象时,系统会自动调用构造函数。构造函数的返回类型只能是 void 型。 3. 继承关系 在 Java 中,类之间可以存在继承关系。例如,类 Student 继承自类 Person,这意味着类 Student 继承了类 Person 的...

    java 基础 类对象创建实例化过程 实例解析

    * 继承树中的从最高层开始的实例语句块{}、然后对应的构造函数、以及构造函数中调用的方法 * (如果是重写即子类将父类的实例方法重写类,则调用子类的,如果是隐藏即方法则父类中声明为静态方法,则调用父类本身的...

    JavaSE阶段测试.doc

    知识点:Java 中的构造函数和继承,包括构造函数的调用顺序和继承的关系。 7. 以下说法正确的选项是:(该问题考查的是 Java 的多态和类型转换) 知识点:Java 中的多态和类型转换,包括类型转换的规则和限制。 8...

    Java版水果管理系统源码-c-plus-Interview:c-plus-面试

    虚函数的实现原理,子类构造析构函数的调用顺序 虚函数怎么实现的 虚函数机制 虚函数的执行和类成员函数的执行在汇编的级别差了哪些指令 虚函数的作用和实现原理 构造中能不能调虚函数 析构中能不能调虚函数 C++模板...

    java对象初始化顺序验证示例

    以下这段小程序对调用对象构造函数时,父类构造函数、成员变量初始化函数,以及非静态初始化块调用顺序进行验证,不考虑静态成员及静态初始化块

    java面试800题

    类初始化时构造函数调用顺序: (1)初始化对象的存储空间为零或null值; (2)调用父类构造函数; (3)按顺序分别调用类成员变量和实例成员变量的初始化表达式; (4)调用本身构造函数。" Q0053 "Public ...

    Java初始化顺序

    System.out.println(Sample默认构造函数被调用); } } class Test{ static Sample sam=new Sample(静态成员sam初始化); Sample sam1=new Sample(sam1成员初始化); static{ System.out.println(static块执行);...

    java自学之道

    4.4 构造函数被调用后的详细执行过程 5、包 5.1 创建包 5.2 创建可复用类的步骤简要说明 5.3 包的导入 5.4 包的可见性 接口 6.1 接口的概念 6.2 接口的声明 6.3 接口的实现 四、IO流及异常处理 1、流和文件 ...

    Java并发编程(学习笔记).xmind

    在调用构造函数后再定制ThreadPoolExecutor 扩展 ThreadPoolExecutor afterExecute(Runnable r, Throwable t) beforeExecute(Thread t, Runnable r) terminated 递归算法的并行化 构建并发应用程序...

    Java-常见面试题.pdf

    1. 手动 new 通过构造函数创建 2. 实现超类 Object 的 Cloneable 方法 3. 通过反射获取类模板对象,再通过 Class 对象的 newInstance() 方法创建 4. 通过反射获取类模板对象,再 Constructor 对象创建 5. 反序列化的...

    恒生电子笔试题.docx

    * 当新对象被创建的时候,构造函数会被调用。 * 不可以为一个类创建多个构造函数。 * 在程序员没有给类提供构造函数的情况下,Java 编译器会为这个类创建一个默认的构造函数。 * 每一个类都有构造函数。 3.接口...

    java基础教程第3版习题解答.doc

    * Java 中的类可以定义变量、方法和构造函数,例如 public class E { public static void main(String args[]) { ... } }。 Java 基础知识 * Java 语言的开发步骤包括编写源文件、编译源文件、运行字节码文件三个...

    AIC的Java课程1-6章

     弄清构造函数和终结方法在继承层次结构中的调用顺序,强调子类必须调用超类的构造函数分配空间和初始化超类数据。  掌握方法重写(override)的基本要求。  理解和使用关键字final。  理解包的...

    java 面试题 总结

    不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)...

    java基础笔试题(答案已整理).doc

    在子类构造方法中使用 super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行。 15. 下面对封装的描述正确的选项是。 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性。 16. 下面对继承...

    疯狂JAVA讲义

    学生提问:为什么我创建Java对象时从未感觉到java.lang.Object的构造器被调用过? 150 5.7 多态 151 5.7.1 多态性 151 5.7.2 引用变量的强制类型转换 152 5.7.3 instanceof运算符 154 5.8 继承与组合 154 ...

Global site tag (gtag.js) - Google Analytics