构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
(5)构造方法可以重载,以参数的个数,类型,顺序。
一。
Parent.java
public class Parent { public Parent() { System.out.println("调用了父类无参构造函数"); } public Parent(String msg) { System.out.println("调用了父类有参构造函数\n"+ "参数内容为:"+msg); } }
Test.java
public class Test { public static void main(String[] args) { Parent parentA = new Parent();//调用无参的构造函数 Parent parentB = new Parent("父类有参");//调用有参的构造函数 } }
输出结果:
调用了父类无参构造函数
调用了父类有参构造函数
参数内容为:父类有参
二、如果没有创建无参构造函数,不能直接调用系统提供的无参构造函数
三、构造器的继承
(1)
父类:
public class Parent { public Parent() { System.out.println("调用了父类无参构造函数"); } public Parent(String msg) { System.out.println("调用了父类有参构造函数\n"+ "参数内容为:"+msg); } }
子类:
public class Child extends Parent{ public Child() { System.out.println("调用了子类无参构造函数"); } public Child(String msg) { super(msg); System.out.println("调用了子类有参构造函数\n"+ "参数内容为:"+msg); } }
测试类:
public class Test { public static void main(String[] args) { Child childA = new Child(); System.out.println("------------------"); Child childB = new Child("子类有参"); } }
输出结果:
调用了父类无参构造函数
调用了子类无参构造函数
------------------
调用了父类有参构造函数
参数内容为:子类有参
调用了子类有参构造函数
参数内容为:子类有参
如果子类有参构造函数注释掉super();则调用父类的无参构造函数
public class Child extends Parent{ public Child() { System.out.println("调用了子类无参构造函数"); } public Child(String msg) { //super(msg); System.out.println("调用了子类有参构造函数\n"+ "参数内容为:"+msg); } }
那么输出结果:
调用了父类无参构造函数
调用了子类无参构造函数
------------------
调用了父类无参构造函数
调用了子类有参构造函数
参数内容为:子类有参
(2)子类只继承父类的默认(缺省)构造函数,即无形参构造函数。如果父类没有默认构造函数,那子类不能从父类继承默认构造函数。
父类注释无参构造函数:
子类不能从父类继承默认构造函数
相关推荐
8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8.java构造函数.zip8....
以下是关于Java构造函数继承问题的关键知识点: 1. **继承默认构造函数**: - 子类只能继承父类的无参数(默认)构造函数。如果父类没有无参数的构造函数,那么子类无法直接继承任何构造函数。 - 缺省构造函数是...
Java构造函数是编程中至关重要的概念,特别是在面向对象编程中。它们主要用于初始化新创建的对象的状态。构造函数在类中定义,其名字与类名完全相同,并且没有返回类型,连void也不包含。当通过`new`关键字创建一个...
java构造函数雪花算法生成uuid,开始时间截、机器id所占的位数、数据标识id所占的位数、支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) 、支持的最大数据标识id,...
Java构造函数的相互调用代码示例 Java构造函数的相互调用代码示例是Java编程中的一个重要知识点。通过使用this关键字,可以在一个构造函数中调用另一个构造函数,以减少代码量。下面是相关的知识点: 1. 构造函数...
Java构造函数与普通函数用法详解 Java构造函数和普通函数是Java语言的两个基本组成部分,它们在Java编程中扮演着非常重要的角色。下面我们将详细讲解Java构造函数和普通函数的用法和相关知识点。 一、函数的作用和...
Java构造函数是面向对象编程中的一个关键概念,用于在创建对象时初始化对象的状态。当我们创建一个类的实例时,构造函数会被自动调用,它允许我们设置对象的初始属性值,确保对象在创建后处于一个合理的状态。在这个...
“深入理解Java构造器机理” 在 Java 编程语言中,构造器是一种特殊的方法,用于初始化对象的创建。它是 Java 类中最重要的一个概念。下面将深入讨论构造器的机理、执行顺序、作用及与其他概念的区别。 一、构造器...
### Java中的私有构造函数:理解其特殊用途与设计模式应用 #### 一、引言 在Java编程语言中,构造函数(Constructor)是用于初始化新创建的对象的关键组成部分。默认情况下,构造函数的访问级别设置为`public`,...
在这个场景中,我们关注的是Java继承时构造函数的调用规则。 首先,每个Java类都有一个或多个构造函数,它们的主要作用是在创建对象时初始化对象的状态。如果一个类没有显式定义任何构造函数,Java编译器会自动生成...
在探讨继承中子类与父类构造函数及静态块的执行顺序时,我们首先需要理解构造函数和静态块的基本概念及其在Java中的作用。构造函数主要用于初始化对象的状态,而静态块则是在类加载到内存中时执行的一段代码,通常...
这是因为Java编译器不允许子类构造函数默认调用不存在的父类构造函数。 例如,在以下代码中,因为`Base`类中没有定义任何构造函数(默认构造函数被注释掉),所以`Derived`类中的构造函数尝试调用不存在的`Base`...
Java 泛型构造函数是Java编程中用于增强类型安全性的工具,它们允许我们在类的构造函数中使用类型参数。在创建对象时,泛型构造函数能够确保传入的数据类型符合预定义的约束,从而减少类型转换错误并提高代码的...
在Java编程语言中,构造函数是一种特殊的方法,它在创建对象时被自动调用,用于初始化新创建的对象。本视频“18_构造函数”深入探讨了Java中的构造函数概念,是JavaSE学习的重要组成部分。 首先,我们来理解构造...
### 构造函数继承在Java中的应用 构造函数继承是面向对象编程中一个重要的概念,尤其是在Java这样的语言中。本文将深入探讨构造函数继承的概念、原理及其在Java中的实现方式。 #### 构造函数的基本概念 在Java中...
枚举类型与构造函数 枚举类型是一种特殊的数据类型,它可以在程序中定义一组固定的常量,...枚举类型和构造函数是Java中两种重要的概念,枚举类型可以定义一组固定的常量,而构造函数可以用于初始化对象的实例变量。
### Java:构造函数与对象 #### 第一章:构造函数揭秘——创造者的第一次触碰 在Java编程语言中,构造函数扮演着极其重要的角色。它是一种特殊的成员方法,主要用于对象的初始化过程。构造函数没有返回类型,其...
Java继承时构造函数的调用机制是:子类的构造函数需要调用父类的构造函数,父类的无参数构造函数是默认的,如果父类没有提供无参数构造函数,而提供了其他类型的构造函数,那么编译器将报错。因此,我们最好给父类...
JAVA 构造函数定义过程解析 JAVA 构造函数是类的一种特殊方法,它用于初始化类的对象。构造函数的名称必须与类名相同,且不能返回任何值,包括 void。构造函数的主要作用是初始化类的成员变量,并对对象进行初始化...