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
分享到:
相关推荐
关于调用Java构造方法,你可以这样做: ```c++ jclass javaClass = env->FindClass("com/example/YourJavaClass"); jmethodID constructor = env->GetMethodID(javaClass, "<init>", "()V"); jobject javaObject = ...
了解和熟练使用构造方法是Java面向对象编程的基础,下面将详细阐述Java构造方法的相关知识点。 一、构造方法的作用 构造方法的主要任务是在创建对象时设置对象的初始状态,为对象成员变量赋值。当一个类被实例化时...
### Java构造方法详解 #### 一、构造方法基础概念 构造方法是Java中一种特殊的方法,主要用于初始化新创建的对象。每个类至少有一个构造方法。如果程序员没有显式地定义构造方法,Java编译器会自动为类添加一个无...
总结,Java构造方法在创建和初始化对象时起着至关重要的作用。通过理解并熟练运用构造方法,开发者可以更好地设计和实现类,提高代码的可读性和维护性。在实践中,要灵活运用构造方法的重载、`this`关键字以及与继承...
Java的子类调用父类的构造方法.pdf
Java 构造方法是编程语言中的一个重要概念,特别是在面向对象编程中,如Java。它们是类的特殊方法,用于初始化新创建的对象。当一个对象被创建时,构造方法会被自动调用,为对象的成员变量赋值,进行必要的设置,...
Java构造方法 Java构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和...
总结,Java中的构造器是至关重要的,它们负责对象的初始化,包括设置成员变量的初始值。了解和掌握构造器的调用、初始化、默认构造器、继承中的构造器调用以及构造器重载等概念,是编写高质量Java代码的基础。通过...
### Java中的继承(子类调用父类构造方法) #### 一、继承的基本概念 Java是一种支持面向对象编程的语言,其中“继承”是一项核心特性。继承允许创建一个新的类(称为子类或派生类),该类继承了现有类(称为父类...
Java构造方法解析 ...总结起来,Java构造方法是初始化类实例的关键工具,它们允许我们在创建对象时定制初始化过程,确保对象的正确状态。理解并熟练运用构造方法及其特性对于编写高效、可维护的Java代码至关重要。
本文件主要探讨了Java中带有不同构造方法的程序如何影响内存分析,这包括无参构造方法、带参数的构造方法以及它们在内存分配中的应用。 首先,让我们了解一下构造方法。构造方法是一种特殊的方法,它的名字与类名...
Java 程序中的构造方法调用 Java 程序设计语言中的构造方法是一个特殊的成员方法,它专门用于创建对象和对所创建的对象进行初始化。正确调用构造方法是我们设计程序的关键所在。构造方法的调用方式有三种:一是在...
下面详细解析Java构造方法的特性和使用方法。 构造方法的特性: 1. 方法名与类名相同:构造方法的名字必须与类名完全相同,这是Java语法规定的一部分,便于编译器识别并自动调用构造方法。 2. 构造方法无返回类型:...
总结,Java子类构造方法的使用涉及到继承、初始化、方法调用等多个概念。正确理解和运用这些知识点对于编写健壮的Java程序至关重要。通过熟练掌握这些内容,开发者可以更好地设计和实现类的层次结构,提高代码的复用...
在C或C++中调用JAVA方法是一种常见的跨语言交互技术,主要依赖于Java Native Interface (JNI)。JNI是Java平台的一部分,它允许Java代码和其他语言编写的代码进行交互,从而实现混合编程。JNI提供了丰富的API,使得...
Java构造方法的作用总结 Java构造方法是Java语言中的一种特殊方法,它用于初始化新建的对象。构造方法的主要作用是对类进行初始化,它们的方法名必须与类名相同,并且不可以声明返回类型。下面是关于Java构造方法的...