想问一下关于super()

想问一下关于super()

子类的构造方法里面加super不是为了调用父类对应的构造方法吗

那么如果没有继承的类的构造里面写super到底有什么含义呢

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

继承不只是继承构造方法,会继承所有属性和方法,构造方法只是其中一种方法。

构造方法都会默认有一个隐含的super()。你自己写了编译器就不帮你写,你不写就有一个隐含的。

你定义一个A类,又定义一个B类继承A,B类的父类是A。

A类你没有写继承谁,那就是默认继承自object类。

你写不写super()和你继不继承没有关系,super()只是一个显示的父类构造方法调用。

正常情况下都不用手写super(),一般是父类有有参构造方法,你不写只能默认调用无参的,所以会显示写super(arg1,arg2)这样来调用。

你继续往后看吧,老师有讲的。


苍星乱舞 2020-04-14 20:53:33

Java里有一个object类是所有类的父类(不一定是直接父类),没有显示继承的就是继承自object类。有显示继承的,则相当于object类是祖先类。

  • 提问者 TOUU_JP #1
    也就是没有显示的 是继承object的构造方法 如果我不写super的话 难道就不会继承object的构造方法吗 有什么影响没有啊老师
    2020-04-14 20:57:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师