public class Test {
public static void main(String[] args) {
new Son("baidu");
new Son();
}
}
class Farther{
public Farther(){
System.out.println("I am father");
}
public Farther(String name){
System.out.println("I am father:"+name);
}
}
class Son extends Farther{
public Son(){
System.out.println("I am son");
}
public Son(String name){
//super("google");
System.out.println("I am son:"+name);
}
}
Java在实例化一个对象的时候,如果没有显式使用super(),则会先调用父类的无参构造函数(不是和自己构造函数参数数量对应的那个),然后调用子类的构造函数,如果父类不是Object类,则一直向上追溯到Object类为止,super()只能在构造函数的第一行使用,在别的地方使用均为非法,一般情况下构造函数不用写super(),但是如果一个类有多个构造函数的时候,为了便于理解,往往要显式调用super()。
上面代码的运行结果为:
I am father
I am son:baidu
I am father
I am son
分享到:
相关推荐
2. 如果父类没有无参数的构造函数,或者我们希望在子类构造时传递特定参数给父类,可以在子类的构造函数中使用`super()`关键字显式调用父类的构造函数。这里的`super()`后面可以跟随一个参数列表,与父类构造函数的...
Java 中的 super 关键字有三种用法:在子类的构造函数中调用父类的构造方法、在子类中访问父类的成员变量或方法、在子类的构造函数中直接传递参数给父类的构造方法。 首先,在子类的构造函数中,super 关键字可以...
以下是关于Java构造函数继承问题的关键知识点: 1. **继承默认构造函数**: - 子类只能继承父类的无参数(默认)构造函数。如果父类没有无参数的构造函数,那么子类无法直接继承任何构造函数。 - 缺省构造函数是...
Java构造函数是编程中至关重要的概念,特别是在面向对象编程中。它们主要用于初始化新创建的对象的状态。构造函数在类中定义,其名字与类名完全相同,并且没有返回类型,连void也不包含。当通过`new`关键字创建一个...
2. **显式调用父类的构造函数**:如果父类中定义了显式构造函数,那么子类的构造函数必须通过`super()`来显式调用父类的一个构造函数。如果不这样做,编译器将报错。 例如: ```java class Base { public Base...
在Java编程语言中,构造函数是一种特殊的方法,它在创建对象时被自动调用,用于初始化新创建的对象。本视频“18_构造函数”深入探讨了Java中的构造函数概念,是JavaSE学习的重要组成部分。 首先,我们来理解构造...
“深入理解Java构造器机理” 在 Java 编程语言中,构造器是一种特殊的方法,用于初始化对象的创建。它是 Java 类中最重要的一个概念。下面将深入讨论构造器的机理、执行顺序、作用及与其他概念的区别。 一、构造器...
### 构造函数继承在Java中的应用 构造函数继承是面向对象编程中一个重要的概念,尤其是在Java这样的语言中。本文将深入探讨构造函数继承的概念、原理及其在Java中的实现方式。 #### 构造函数的基本概念 在Java中...
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。 this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。 要记住的几个关键点是: 在构造方法中this...
枚举类型与构造函数 枚举类型是一种特殊的数据类型,它可以在程序中定义一组固定的常量,...枚举类型和构造函数是Java中两种重要的概念,枚举类型可以定义一组固定的常量,而构造函数可以用于初始化对象的实例变量。
构造函数重载是Java中的一个重要概念,它允许在一个类中定义多个构造函数,只要它们的参数列表不同即可。这样可以为创建对象提供多种方式,增加了灵活性和便利性。 例如,我们可以在`Car`类中添加额外的属性`price`...
super 用在构造函数时要放在第一行,相当于调用 super 刷新了构造函数。super.g() 调用的成员引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时)...
1. super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 在 Java 中,super 关键字用于访问父类中的成员变量和方法。当我们想要访问父类中的某个成员变量或方法时,我们可以使用 super ...
在Java编程语言中,构造函数是用来初始化对象的特殊方法。当创建一个类的实例时,构造函数会被调用。在涉及继承的情况下,构造函数的使用和调用规则变得更加复杂。以下是对构造函数继承问题的详细解释: 1. 缺省...
Java中的`super`关键字用于在子类构造函数中显式调用父类的构造器。例如: ```java class Parent { public Parent() { System.out.println("Parent's constructor"); } } class Child extends Parent { public...
这通常通过`super`关键字(在Java中)或直接调用父类的构造函数(在C++中)实现。 总之,参数传递在构造函数中扮演着关键角色,它影响着对象的初始化过程。理解并掌握各种参数传递方式的差异和应用场景,能帮助我们...
在Java编程语言中,"构造函数"和"析构函数"是两个关键概念,它们在对象的生命周期管理中起着至关重要的作用。首先,我们来深入理解这两个概念。 构造函数,顾名思义,是在创建类的对象时被调用的特殊方法。它的主要...
在构造函数中,this 和 super 关键字也可以被使用。例如: ```java public class Person { public Person() { this.pr(); } protected void pr() { System.out.println("A Person."); } } ``` 在上面的代码...
在Java编程语言中,构造函数是一个特殊的方法,用于在创建对象时初始化对象的状态。这个视频教程"14_构造函数"应该深入讲解了Java中的构造函数及其重要性,特别是对于初学者,理解这一概念至关重要。 构造函数的...
Java中,子类可以通过`super()`关键字来调用父类的构造函数,这通常是子类构造函数的第一行代码。 在进行面向对象设计时,理解并熟练使用构造函数至关重要。它不仅关乎到对象的初始化,还直接影响到类的实例化过程...