java 构造方法中super()的作用?
Posted liuw_flexi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 构造方法中super()的作用?相关的知识,希望对你有一定的参考价值。
手贱百度了一下 :java里面自定义类的有参构造方法为什么不用super()
举个例子:
class Father { Father(){print (‘father‘);}; } class Son { Son(){print (‘son‘)}; }
如果只是这样,那么构造Son之前会在后台调用一下super()函数,
调用过程你看不到,但是确实执行了,结果是先father后son
但是这种时候你显示的写个super就没有意义了,那么他在什么时候用呢,再举个例子
给你举个例子
class Father { Father(){print (‘father‘);}; Father(int age){print (‘father is‘+age);}; } class Son { Son(){super(36);print (‘son‘)}; }
这种情况下输出的就不是father 和 son了,而是father is 36 和 son
就是说在你父类不止一个构造函数时,显示的调用super才有意义
进行初始化是一个方面,像我这个例子里就是输出了一些信息
其实就是按照程序运行顺序先做什么后做什么,网络视频说的意思对,但没解释清楚
是不是如果子类里有构造方法或者在其他类里要调用这个子类的构造方法,就必须在这个构造方法里调用父类的构造方法?
对,调用是必须调用的,但是分显示调用和隐式调用
拿第二个例子来说
class Son { Son(){print (‘son‘)}; //输出father 和 son } class Son { Son(){super();print (‘son‘)}; //输出father 和 son } class Son { Son(){super(36);print (‘son‘)}; //输出father is 36 和 son }
根据你调用的不同结果不同,但是一定会调用的
摘自:https://zhidao.baidu.com/question/279318547.html
以上是关于java 构造方法中super()的作用?的主要内容,如果未能解决你的问题,请参考以下文章