构造方法是一种特殊的方法,具有以下特点。
(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构造函数雪花算法生成uuid,开始时间截、机器id所占的位数、数据标识id所占的位数、支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) 、支持的最大数据标识id,...
Java构造函数的继承问题[收集].pdf
java构造函数及相关知识[借鉴].pdf
主要介绍了Java构造函数的相互调用代码示例,分享了两段代码示例,通过this关键字实现对的构造函数的调用,具有一定参考价值,需要的朋友可以了解下。
本篇文章给大家详细讲述了Java构造函数与普通函数用法以及相关知识点,对此有兴趣的朋友可以参考学习下。
主要介绍了java构造函数示例(构造方法),需要的朋友可以参考下
java构造方法是java类中最重要的一个概念,这篇文档涵盖了,java对象初始化过程中构造器调用的顺序,及作用。
在Java中,构造函数的访问级别通常是public, 它提供了一个构造该类对象的接口。可是你知不知道,把构造函数的级别设为private, 有一些特别用处。
创建一个子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数),假如父类有带参数的构造函数,那么系统将不会给它创建无参数的构造函数,这时,子类在实例化的时候,因为找不到父类的默认构造函数...
Java泛型构造函数(学习资料);Java泛型构造函数(学习资料);Java泛型构造函数(学习资料)Java泛型构造函数(学习资料);
构造最全的Java面试题构造最全的Java面试题构造最全的Java面试题构造最全的Java面试题构造最全的Java面试题
java中的构造代码块和构造函数.pdf
本文主要总结了Java多线程开发中线程创建时多用到的创建方式(不同的构造函数)以及线程组相关的基础知识
简单描述了构造函数与析构过程。中间有示例。 感兴趣的朋友可以下来试试。
构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承构造函数继承
涵盖很多重点。我喜欢理论和实例一起整理,所以可以帮到你们。好好加油吧。我相信你看完的传的一个还回看下一个。。
基于构造函数,继承和多态的实现,包含梯形,平行四边形,矩形,正方形
总有人会不很了解复制构造函数的用法,通过实例就可以清除了解其用法。