注意:(1)在子类中的缺省构造器可以调用父类的缺省/非缺省构造器,在调用父类的缺省构造器时,
不用写super关键字直接可以调(因为super是隐式的);在调用父类的非缺省构造器时,
必须用super(参数)显示调用。如下面的案例所示:
class Art {
Art(){System.out.println("Art constructor1");}//(1)
Art(int i ) {
System.out.println("Art constructor2");
}
}
class Drawing extends Art {
public Drawing(){super(3);}//(2)
public Drawing(int i) {
super(4);
System.out.println("Drawing constructor");
}
}
public class E05_Cartoon2 {
public static void main(String args[]) {
new Drawing();//(3)
//new Drawing(3);
}
} ///:~
运行结果:
Art constructor2
如果把标记为(2)处的super(3)删除掉,那么会调用父类的缺省构造器。
运行结果是:
Art constructor1
注意:(2)在子类中的非缺省构造器可以调用父类的缺省/非缺省构造器,在调用父类的缺省构造器
时,不需要super关键字直接可以调用;在调用父类的非缺省构造器时,必须用super(参数)显示
调用。看下面的案例
class Art {
Art()//(1)
{
System.out.println("Art constructor1");
}
Art(int i ) {
System.out.println("Art constructor2");
}
}
class Drawing extends Art {
//public Drawing(){super(4);}//(2)
public Drawing(int i) {
//super(4);//(3)
System.out.println("Drawing constructor");
}
}
public class E05_Cartoon2 {
public static void main(String args[]) {
//new Drawing();//(4)
new Drawing(3);
}
} ///:~
运行结果:
Art constructor1
Drawing constructor
如果把标记为(3)的注释去掉,那么此时就是调用父类的非缺省构造器,
运行结果是:
Art constructor2
Drawing constructor
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhu_apollo/archive/2007/11/09/1875810.aspx
分享到:
相关推荐
在Java编程语言中,构造器(Constructor)是一个特殊的方法,主要负责对象的初始化工作。当创建一个新的类实例时,构造器会被自动调用。构造器的名称必须与类名完全相同,且没有返回类型,包括void。理解并熟练运用...
“深入理解Java构造器机理” 在 Java 编程语言中,构造器是一种特殊的方法,用于初始化对象的创建。它是 Java 类中最重要的一个概念。下面将深入讨论构造器的机理、执行顺序、作用及与其他概念的区别。 一、构造器...
在构造方法中,`this`可以用来调用同一类的其他构造器,实现代码共享。 - `this`还可以用来区分实例变量和局部变量,或方法参数,当它们有相同的名称时。 ```java public class Example { private String name; ...
在Java中,构造器(Constructor)是一种特殊的方法,主要用于初始化对象。构造器的名字必须与类名相同,并且没有返回类型,甚至连`void`也不可以有。构造器的主要任务是在创建对象时为对象分配内存并初始化成员变量...
Java 构造方法是编程语言中的一个重要概念,特别是在面向对象编程中,如Java。它们是类的特殊方法,用于初始化新创建的对象。当一个对象被创建时,构造方法会被自动调用,为对象的成员变量赋值,进行必要的设置,...
构造器是类中用于初始化新创建对象的方法,名字与类名相同,没有返回值。每个类可以有多个构造器,根据参数不同进行重载。当创建对象时,构造器会被调用来初始化对象的属性。 ```java public class Parent { ...
本文件主要探讨了Java中带有不同构造方法的程序如何影响内存分析,这包括无参构造方法、带参数的构造方法以及它们在内存分配中的应用。 首先,让我们了解一下构造方法。构造方法是一种特殊的方法,它的名字与类名...
### Java中的继承(子类调用父类构造方法) #### 一、继承的基本概念 Java是一种支持面向对象编程的语言,其中“继承”是一项核心特性。继承允许创建一个新的类(称为子类或派生类),该类继承了现有类(称为父类...
在方法中,`super`用于调用超类中被重写的方法,而在构造器中,`super`用于调用超类的构造器,确保子类实例化时,超类的状态也被正确初始化。例如: ```java class Mammal { void getBirthInfo() { System.out....
Java中的构造方法是类的重要组成部分,它在对象创建过程中扮演着关键角色,主要负责对象的初始化。构造方法具有以下几个显著特点: 1. **与类名相同**:构造方法的方法名必须与类的名称完全一致。例如,如果有一个...
1. `Class`:代表Java类的类,可以通过Class对象获取类的构造器、方法、字段等信息。 2. `Constructor`:表示类的构造函数,可以用来创建类的新实例。 3. `Method`:表示类的方法,可以调用方法。 4. `Field`:表示...
在Java编程语言中,构造方法是用于初始化新创建对象的特殊方法。它们的名字与类名相同,不返回任何类型,并且通常与new关键字一起使用。构造方法的重载(Overloading)是面向对象编程的一个重要特性,允许我们在同一...
除了默认构造器和参数化构造器,Java还支持构造方法的重载,即在同一个类中定义多个构造方法,它们具有不同的参数列表。这样可以根据需要提供多种创建对象的方式。 关于构造方法的继承,Java中类的继承并不包括构造...
构造器和方法是Java编程语言中的两个核心概念,它们各自承担着不同的角色和功能,但初学者往往容易混淆。为了更好地理解和区分构造器与方法,本文将深入探讨这两个概念的关键差异,包括它们的功能、语法特性以及如何...
因此,构造方法无需在程序中直接调用,而是在对象产生时自动执行。 构造方法的重载 一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行...
- **构造方法**:`super`用于调用超类的构造器,确保子类在实例化时能正确初始化父类的状态。同样,`super`调用必须位于构造方法的第一行。 - **普通方法**:`super`用于调用被重写的超类方法,确保在子类中能够执行...
"Java私有构造器使用方法示例" Java 私有构造器是 Java 编程语言中的一种特殊的构造器,它使用 private 关键字声明,以控制访问权限。私有构造器的主要作用是阻止对象的生成,防止类被实例化和子类化。通过私有构造...
Java中构造器内部的多态方法的行为实例分析是Java编程语言中一个非常重要的知识点,本文将详细介绍Java中构造器内部的多态方法的行为,结合实例形式分析了java构造器内部多态方法相关原理、功能及操作技巧。...
在`Testoo.java`文件中,很可能包含了测试这些概念的代码,通过创建不同类型的对象,调用构造器初始化它们,然后通过getter和setter方法来访问和修改成员变量的值。这样的测试有助于验证类的设计是否正确,以及继承...