栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么我需要在这里显式编写一个构造函数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么我需要在这里显式编写一个构造函数?

1)为什么必须对V类完全使用构造函数?AFAIK不需要创建构造函数,因为JAVA编译器会自动创建默认构造函数以继续其操作。同样从消息中,似乎还需要一个默认的构造函数,但不是我编写的,但是正如我所说的,JAVA不会自动创建它吗?

仅当不存在其他构造函数时才创建默认构造函数,当您创建该构造函数时,将

Check(int i,int j)
删除默认构造函数。

如果在构造函数中未包含对super的调用,则java会

super()
默认尝试进行调用。但是,由于父类中没有默认构造函数,因此无法执行此操作。

这种行为是好的,因为您可能不需要默认的构造函数。某些变量可能 必须
初始化才能使对象正常运行。因此,需要一种删除默认构造函数的方法,这是通过显式创建构造函数来完成的。

2)另一件事,我将子类中的代码更改为V(int i,int j){super.a = i; super.b =
j}。,但是我仍然遇到错误。这是为什么?这个代码不是super.a = i; super.b =
j与super(i,j)一样吗?另外,在V类中,我可能不需要使用b,那么为什么我需要通过构造函数对其进行初始化?

代码

V(int i, int j){    super.a=i; super.b=j}

仍然没有对父构造函数的调用,因此变成

V(int i, int j){    super();   super.a=i; super.b=j}

再一次,super()不存在

必须存在对super的一些调用才能“设置”对象的父部分,一直到Object(所有对象隐式扩展)。因此,您不能仅仅因为您在子构造函数中执行了等效的操作就忽略了父构造函数



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414207.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号