子类初始化与子类构造器中的super this

子类的初始化

用此类来记住子类的初始化和super与this的灵活运用!

  • 子类的实例化过程
    结论:
    子类的所有的构造函数,默认都会访问父类中空参数的构造函数。
    因为子类每一个构造函数内的第一行都有一句隐式super();
    当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。
    当然:子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数。子类中至少会有一个构造函数会访问父类中的构造函数。

    为什么子类一定要访问父类中的构造函数?

    因为父类中的数据子类可以直接获取。所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的。
    所以父类在对象初始化时,要先访问父类中的构造函数。*

package baseSome;

/**
 * @author 董
	 子类的实例化过程
	结论:
	子类的所有的构造函数,默认都会访问父类中空参数的构造函数。
	因为子类每一个构造函数内的第一行都有一句隐式super();
	当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。
	当然:子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数。
	子类中至少会有一个构造函数会访问父类中的构造函数。
	
	为什么子类一定要访问父类中的构造函数?

	因为父类中的数据子类可以直接获取。所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的。
	所以父类在对象初始化时,要先访问父类中的构造函数。
 */
public class ExtendTestDemo {
	public static void main(String[] args) {
		Zi zi = new Zi(2);
	}
}

class Fu{
	
	Fu(String name){
		System.out.println("我是fu" + "---"+name);
	}
}

class Zi extends Fu{
	Zi(){
		super("dzy");
		System.out.println("-------------无参数构造器");
	}
	Zi(int x){
		//this();
		super("dzy");
		System.out.println("-------------第二个构造器"+x);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值