个人对Java构造方法调用的总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
个人对Java构造方法调用的总结

个人对Java构造方法调用的总结 1.构造方法必须与定义它的类有完全相同的名字。构造方法没有返回类型,也没有void。 ? 2.类可以不声明构造方法,这时类中隐含声明了一个方法体为空的无参构造方法。但当类有明确声明构造方法时,它就不会自动生成。 ? 3.构造方法的调用:子类首先要调用父类的构造方法才能继承父类的属性和方法。如果子类的构造方法中没有显式地调用父类的构造方法,则系统默认调用父类无参数的构造方法。说说3种情况: 父类和子类都没有显式定义构造方法或者只定义了无参构造方法,这种情况下没有问题,Java 会顺着继承结构往上一直找到 Object,然后从 Object 开始往下依次执行构造函数。以下两个例子效果一样,只是Example2有相关输出: Example1 public class test1 { ??? public static void main(String[] args){ ??? ??? A example =new A(); ??? } } ? class A extends B{ } ? class B{ } ? Example2: public class test { ??? public static void main(String[] args){ ??? ??? A example =new A(); ??? } } ? class A extends B{ ??? public A(){ ??? ???? System.out.println(As constructor is invoked.); ??? } } class B{ ??? public B(){ ??????? System.out.println(Bs constructor is invoked.); ??? } } 输出:Bs constructor is invoked    As constructor is invoked ? 父类只定义有参构造方法,那么无论子类如何定义,编译都会报错,因为父类缺少了默认无参构造方法,需要显式定义。 public class test { ??? public static void main(String[] args){ ??? ??? A example =new A(3); ??? } } ? class A extends B{ ??? public A(int a){ ??? ?? System.out.println(As constructor is invoked.+a=+a); ??? } } ? class B{ ??? private int b=0; ??? //public B(){ ??? //??? System.out.println(Bs constructor is invoked.); ??? //} ???? ??? public B(int b){ ??? ??? System.out.println(Bs constructor is invoked.+b=+b); ??? } } 把注释符去掉就可以编译,输出:Bs constructor is invoked.                As constructor is invoked.a=3 ? ③在父类只有有参构造方法而没有无参构造方法时,可以用super(参数)来调用父类构造方法,但super无参时需要父类的无参构造方法。 public class test { ??? public static void main(String[] args){ ??? ??? A example =new A(3); ??? } } ? class A extends B{ ??? public A(int a){ ??? ??? super(a); ??? ??? System.out.println(As constructor is invoked.+a=+a); ??? } } class B{ ??? private int b=0; ???? ??? public B(int b){ ??? ??? System.out.println(Bs constructor is invoked+b=+b); ??? } } 输出:Bs constructor is invoked.b=3 ??????? As constructor is invoked.a=3 此处指定用super(3)调用public B(int b),所以就有如下输出: Bs constructor is invoked.b=3 As constructor is invoked.a=3

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档