java一个c 调用父类构造函数不可能有两个不参的构造方法。这句话对吗?

java 选择填空题库_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
java 选择填空题库
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩11页未读,继续阅读
你可能喜欢您的举报已经提交成功,我们将尽快处理,谢谢!
可以写成静态方法,直接调用
public class Student {
private String name = "";
* 构造函数
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'各位大侠请问java中super()写在子类构造器的第一行是调用父类的有参构造方法还是无参构造方法?_百度知道
各位大侠请问java中super()写在子类构造器的第一行是调用父类的有参构造方法还是无参构造方法?
无参构造器。因为子类继承了父类,体现了java3大特性之一的继承。同时提高了代码重用的效率。当然你可以自定义有参数的构造器。如果不定义一个构造器,它会用父类的无参构造器。同时这也是工厂方式的体现。A a=new A();
其他类似问题
为您推荐:
当然是无参构造器了。这还用问。你都没传参数给它,怎么调用有参构造器
为什么要首先调用父类无参构造器呢?
你写的是super();这里没有参数,你调用的就是无参构造函数了。也不说一定要调用无参构造函数。如果你有有参构造函数,调用那个也是可以的,比如super(name)。如果是调用无参构造函数的话。super();这一行可以省略。
大哥无参的啦;比如你的父类是一个抽象的构造函数;有基本属性(int id,String name)然后有一个子类继承他叫class Zi;在子类中如果你想要父类中的方法,就可以 public zisuper(int id,String name){super(id,name);}还有子类中就算没有s显示uper();但是默认的第一行还是有的;
构造器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁下次自动登录
现在的位置:
& 综合 & 正文
java创建一个子类对象是会调用父类的构造方法会不会创建父类
1、子类在创建实例后,类初始化方法会调用父类的初始化方法(除了java.lang.Object类,因为java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。这个地方我说的是初始化方法,而不是构造方法,因为构造方法是相对于java源而言,而编译后的class文件是初始化方法即" &init&"方法(红色部分为方法名),初始化方法是由java源程序的三个部分组成的,一个部分是成员字段后的直接的初始化语句,例如private int i=0;private Date date=new Date();等等,第二个部分是由初始化块组成,例如:
public class Test{ private int i=0;//初始化第一部分 //以下大括号内为初始化第二部分 { this.i=4; //do something...... } }
第三个部分就是java中的构造方法中的,java源代码中有几个构造方法,那么class文件中就有几个初始化方法,编译器会把第一部分与第二部分分别复制到每个初始化方法的前端,然后把初始化方法对应参数的构造方法的代码复制到相应初始化方法中(这里说的复制其实应该说是编译,不过为了让你更好理解所以如此说).那么说初始化方法如何追述其父类的,这也关系到初始化方法的结构,初始化方法的执行顺序以及结构就如上所说,但是每个初始化方法的第一个执行指令就是调用另外一个初始化方法,这个初始化方法可能是自身类某个初始化方法,例如你的构造函数中第一句有类似this(...)这种语句,那么初始化方法就会调用自身类的指定构造方法;如果你的构造方法中没有指定构造方法调用,那么初始化方法会默认调用父类无参数初始化方法,如果你的子类第一句为 super(....),那么初始化方法会调用父类指定初始化方法。这种调用过程会递归进行调用,直到这个类是java.lang.Object类。调用初始化方法并不代表会生成对象,你的java代码中出现new关键字加上构造方法的调用,只会生成一个对象,其父类对象不会生成,所以调用父类为抽象类的构造方法完全是合理的。而且初始化方法对于虚拟机来说只是一个名称叫做" &init&"的普通方法,区别只是生成对象以后调用而已(sun 的jdk私有包中有绕过构造方法生成对象的方式,可以证明之上说法,具体如何我这里不陈述)。然后回答你的第二个问题,抽象类中的构造方法其实是用来给继承的子类来用的,因为构造方法相当于初始化方法,当子类调用构造方法时必须调用父类构造方法,所以你可以在子类产生对象时抽象类中按需求初始化抽象类中的字段以及执行一些初始化代码。其实并不是一定要生成某个类的实例才调用构造方法,子类也需要调用父类构造方法。而生成实例也并不一定会调用构造方法,在某些特殊实现中或者特殊情况下,生成实例不会调用构造方法。而调用了构造方法也不一定就生成了一个实例,但是那一定是一个实例调用的,就像一个普通的实例方法一样。
&&&&推荐文章:
【上篇】【下篇】java中子类继承父类的构造方法吗?
[问题点数:40分,结帖人Mr_Curiosity_]
java中子类继承父类的构造方法吗?
[问题点数:40分,结帖人Mr_Curiosity_]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 c 父类构造函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信