Java学习笔记54. 子类对父类构造方法的隐式调用

子类在继承父类的构造方法时,默认会隐式调用。即在编译时默认加入:

子类构造方法名(){
    super();        //super关键字调用父类的构造方法
}

这个特性决定了,如果父类里显示地声明了构造方法,并附有参数列表的话,子类必须对其进行显式的调用,否则子类会因为找不到相应的父类的构造方法而出错。

这个规则对于一般类适用,对于抽象类也适用。编程举例如下:

class test{    //父类test
	void run(){    //一般方法
	}   
	public test(int i){    //父类的构造方法
		System.out.println("test");	
	}
}
public class test1 extends test{
/*	
	test1(){    //子类的构造方法
		super(55);    //在子类的构造方法中,对父类的构造方法进行显式调用,参数列表必须符合,否则会出错
	}
*/
	void run(){
	}
	public static void main(String[] args){
	}
}

当然,如果父类中的构造方法有多个,其中有一个是无参的,那么子类可以选择不显式调用父类的构造方法。因为系统会默认选择那个无参的构造方法。

从这里可以看出,了解JVM的工作机制对于学习Java开发还是很有必要的。今后还要多学习一些这方法的知识。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值