当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Java之super及this关键字的一点见解

Java之super及this关键字的一点见解 时间:2014-10-14      来源:未知

在学习的过程中,有很多学生对super及this关键字老是分不清,或者是不知道怎么去用,特别是在构造器之中,更是迷惑。我在这里主要针对学生上课中遇到的一点问题加以介绍,希望对大家学习有所帮助。

首先,我们先看下面一个例子:

这个例子非常简单,有一个子类Child继承于父类Father,然后在测试类Test中使用子类引用。调用子类中的fun方法,执行结果和我们预料的一样:

我们知道,使用new操作符,我们会调用类中相应的构造器,所以,在执行"Child c = new Child(); "这条语句时,我们应该去调用子类中无参的构造器,但是在子类Child中貌似没有构造器。这时大家要注意了,其实我们每个类中,实际上是有一个无参的构造器的。但是,如果程序员自定义了构造器,这时我们只能使用自己的构造器。所以,这时也不难理解,为什么我们new子类实例,是没有报错的了!所以,我们添上一个无参构造器,结果也是一样的。

说到这里,有些同学会问,父类中是否也有默认的无参构造器呢?答案是肯定的!

细心的同学这时会发现,为什么父类中的构造器先于子类的构造器执行呢?我经常会给学生这样解释"老子都没有,哪来的儿子",虽然这句话比较粗俗,但是一语道出了真谛。子类继承父类,父类都不存在,子类谈何继承?但这只是我们逻辑上的理解,java语言怎么解释的呢?这时就有了我们的主角:this,super。

this代表本类引用,super代表父类引用,构造器中亦是如此。看实例:

这是不是一目了然啊?原来在子类构造器中隐藏着一个super(),它就代表父类中的无参构造器!

上一篇:野指针和空指针的两个小点

下一篇:删除固件中的初始程序

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部