为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请教下在super()里的参数是什么呢?

你好,请教下在super()里的参数是什么呢?

呼如林 2022-04-14 10:11:11
子类调用基类的构造函数要用super();给基类初始化,这里的参数要怎么填呢?因为我觉得我现在操作的是派生类,基类初始化是否只是走走形式而已呀?我随便初始化一个值不可以吗?麻烦大家给菜鸟讲解下~谢谢哈其实我就是想问,如果父类是带参数的构造函数,那我子类的super参数是随便写吗?如:class A{public A(String name){N = new String(name);}……}class B extends A{public B(String aType){super(?)//这里填什么呢?随便填什么都可以吗?type = aType;}
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

再能随便写呢,super很简单,就是代表父类的意思,只有父类中有的,你才能用super,没有的你自然不能用。
而在这个程序中,你在子类的构造其中用super,那么,肯定是要继承父类的构造器public A(String name)
{
N = new String(name);
}
,也就是,你必须得给这个super()方法传入和父类构造方法一样的参数(name),所谓的一样,就是类型一样,而非名字一样。
最后要说明的是,你的程序漏洞百出,N是什么东西??type又是什么类型??哪来的type??super(?)后的分号呢?

查看完整回答
反对 回复 2022-04-19
?
慕标5832272

TA贡献1966条经验 获得超4个赞

不是走形式的。
你父类里面如果有了显示的带参数的构造函数。。那么子类默认情况调用父类的构造函数就不能使用了。这个时候就必须显示的调用父类的带参数的构造函数。
super()的参数得看你父类的构造函数。。
如果没有显示的写带参数的构造函数。。 那么你子类可以直接不用写。。jvm会在子类的构造函数第一行加一个隐式的super()
如果你父类没有不带参的构造函数。。那么你子类就必须在构造函数的第一行加入一个super(xxx,xxx,xxx,.....)

查看完整回答
反对 回复 2022-04-19
?
catspeake

TA贡献1111条经验 获得超0个赞

如果子类调用父类的构造函数有参数如果(int a,int b)那子类调用是就super(x,y)如此类推,调用的是没参数的那就直接用super() ,还有默认的调用是super()

查看完整回答
反对 回复 2022-04-19
  • 3 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信