1.构造方法必须与定义它的类有完全相同的名字。构造方法没有返回类型,也没有void。
2.类可以不声明构造方法,这时类中隐含声明了一个方法体为空的无参构造方法。但当类有明确声明构造方法时,它就不会自动生成。
3.构造方法的调用:子类首先要调用父类的构造方法才能继承父类的属性和方法。如果子类的构造方法中没有显式地调用父类的构造方法,则系统默认调用父类无参数的构造方法。说说3种情况:
①父类和子类都没有显式定义构造方法或者只定义了无参构造方法,这种情况下没有问题,Java 会顺着继承结构往上一直找到 Object,然后从 Object 开始往下依次执行构造函数。以下两个例子效果一样,只是Example2有相关输出:
Example1
public class test1 {
public static void main(String[] args){
A example =new A();
}
}
class A extends B{
}
class B{
}
Example2:
public class test {
public static void main(String[] args){
A example =new A();
}
}
class A extends B{
public A(){
System.out.println("A's constructor is invoked.");
}
}
class B{
public B(){
System.out.println("B's constructor is invoked.");
}
}
输出:B's constructor is invoked
A's constructor is invoked
②父类只定义有参构造方法,那么无论子类如何定义,编译都会报错,因为父类缺少了默认无参构造方法,需要显式定义。
public class test {
public static void main(String[] args){
A example =new A(3);
}
}
class A extends B{
public A(int a){
System.out.println("A's constructor is invoked."+"a="+a);
}
}
class B{
private int b=0;
//public B(){
// System.out.println("B's constructor is invoked.");
//}
public B(int b){
System.out.println("B's constructor is invoked."+"b="+b);
}
}
把注释符去掉就可以编译,输出:B's constructor is invoked.
A's constructor is invoked.a=3
③在父类只有有参构造方法而没有无参构造方法时,可以用super(参数)来调用父类构造方法,但super无参时需要父类的无参构造方法。
public class test {
public static void main(String[] args){
A example =new A(3);
}
}
class A extends B{
public A(int a){
super(a);
System.out.println("A's constructor is invoked."+"a="+a);
}
}
class B{
private int b=0;
public B(int b){
System.out.println("B's constructor is invoked"+"b="+b);
}
}
输出:B's constructor is invoked.b=3
A's constructor is invoked.a=3
此处指定用super(3)调用public B(int b),所以就有如下输出:
B's constructor is invoked.b=3
A's constructor is invoked.a=3
分享到:
相关推荐
NDK开发之C语言调用Java构造方法、父类方法、返回中文字符串乱码问题案例详细解析。
Java的子类调用父类的构造方法.pdf
构造方法 解析 深度测试java的 构造方法
java中的继承(子类调用父类构造方法还不懂).doc
调用子类的构造方法时,会先调用父类的构造方法。默认隐式调用父类无参数的构造方法 4.如果要在子类的构造方法中显式调用父类的构造方法。使用super(参数列表),但是这行代码必须是在 子类的构造方法的第一行。
此java程序时计算阶乘的,是利用方法构造,方法调用来求阶乘!
java构造方法是java类中最重要的一个概念,这篇文档涵盖了,java对象初始化过程中构造器调用的顺序,及作用。
Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 ...2、调用类的构造方法时先调用父类的构造方法,在调用子类的构造方法 3、类初始化时,先初始化类的属性成员,在执行构造方法。
构造方法 方法的定义 在java中称为‘方法’,在C中称为‘函数’ java方法是语句的集合 用于执行一个功能 包含于类和对象中 可以被引用 方法的格式 访问权限 [修饰符] 返回值类型 方法名(参数列表){ ... 方法体 .....
内容概要: 本文详细介绍了Java中的构造方法概念,并通过一个示例演示了如何使用构造方法来创建对象和初始化对象的属性。读者将学习构造方法的定义、作用和使用方式,并掌握在类的实例化过程中自动调用构造方法的...
因此,构造方法不能直接调用,只能由new 操作符调用。构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造...
Java继承时构造函数的调用, java面向对象特征: 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...
本篇文章介绍了,Java中子类调用父类构造方法的问题分析。需要的朋友参考下
在C#环境下调用JAVA程序的实例代码,添加dll文件后,引用package ,创建环境变量,即可调用java写的类及构造方法
浅谈Java程序中的构造方法调用.pdf
构造方法是类的一种特殊方法,用来初始化类的一个新的对象,在创建对象(new 运算符)之后自动调用。Java 中的每个类都有一个默认的构造方法,并且可以有一个以上的构造方法 特点 Java 构造方法有以下特点: 方法名...
主要介绍了详解 Java继承关系下的构造方法调用的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
Java使用this关键字调用本类中的重载构造方法.pdf 学习资料 复习资料 教学资源
构造方法 方法重载 方法的重写 初始化 类的初始化 成员初始化 构造器初始化初始化顺序 数组初始化 对象的销毁 对象作用域 this 和 super 访问控制权限继承 多态组合代理 向上转型static final 接口和抽象类接口 ...
编写一个java程序,设计一个汽车类Vehicle,...声明一个父类A,它只有一个非默认构造方法,声明A的子类B,B具有默认构造方法及非默认构造方法,并在B的构造方法中调用基类A的构造方法。编写测试方法生成B的实例并观察结