一直不知道怎么取这个标题。。。
前两天发现我父类中定义了一个带参构造方法,然后子类继承后构造方法必须先调用父类方法带参构造方法,方法调用为super(参数,...)。
然后我就上网查,可能关键字没搞对。。哈哈。。。一直没明白,后来发现,如果父类含有不带参构造方法,那么子类就不需要上述操作。
那么为什么呢?
先说下类实例化的过程,也就是new一个对象的时候
首先默认运行的是类中无参的构造方法(这个可能在实例化过程java会为每一个类自动创建的),这是java默认首先运行的;
当然如果你重写无参的了构造方法那么默认运行的就是你重写的无参构造方法;
还有一种情况就是你只写了带参的构造方法,那么此时,实例化对象的时候,需要手动指定参数来运行含有对应参数的构造方法来构造对象。
例1:
package com.zero;
public class Father {
//年龄
private int age;
//仅有一个带参数的构造方法
public Father (int i){
this.age = i;
System.out.println("实例化父类 ag = " + age);
}
//main方法
public static void main (String [] args) {
//实例化对象时必须指定参数以运行对应