使用Java的子类调用构造方法super()和this()

测试代码:

package Test;

abstract class FatherClass{
	abstract void getn();
	FatherClass(){
		System.out.println("无参父类构造方法");
		getn();
	}
	FatherClass(int i){
		System.out.println("有参父类构造方法");
		getn();
	}
}

class SonClass extends FatherClass{
	boolean n=true;
	SonClass(int x){
		//super();     //与下面的this()发生冲突
		this();
		System.out.println("有参子类构造方法");
		getn();
	}
	
	SonClass(){
		super(6);
		System.out.println("无参子类构造方法");
		getn();
	}
	void getn(){
		System.out.println(n);
	}
}

public class TestOfConstruction2 {
	public static void main(String[] args){
		new SonClass(6);
	}
}

输出结果:

 
有参父类构造方法
false   //这里变量n还未初始化
无参子类构造方法
true
有参子类构造方法
true      

1.构造方法作用:在系统生成对象时,系统会为对象分配内存空间,并自动调用构造方法对实例变量进行初始化,当对象不再使用时,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值