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细节之static方法重写前言   Java语言拾遗,高手如果感兴趣可跳过前两节。 类方法   方法被声明为static后,则称为类方法。类方法相对于实例方法,前者区别于后者的地方:前者为属于该类的所有实例对象共享,无须实例化对象,仅通过类名即可访问(当然,是否能够直接访问,还取决于所声明的访问权限)。   因为被static化后产生上述特殊性,所以static变量都会在类被加载时初始化,而类方法也同时随类加载而进驻内存。先来段代码热热身吧~ public?class?Test?...{??public?static?void?main(String[]?args)?...{ ????????A.print(); ????????System.out.println(A.publicStr); ????} } class?A?...{ ????private?static?A?a?=?new?A(); ????private?static?String?privateStr?=?null; ????public?static?String?publicStr?=?A?Class; ????private?A()?...{ ????????privateStr?=?A?Calss; ????} ????public?static?void?print()?...{ ????????System.out.println(privateStr);????}}   上段代码,输出结果为: null A?Class   由结果可知,即字符串prvateStr的值为空。嘿,可别认为值应该是下面那样啊。那样的话,进行下去就太具挑战性了。 A?Class A?Class   请记住一点,类变量初始化的顺序与其在类中的赋值顺序一致。 重写(覆盖)   或许大家对于面向对象编程语言最初的印象就是其语言单元是以父类、子类的关系存在着,而构建这一关系的就是继承机制了。子类可以继承父类一切非private的变量与方法,并且可以添加自己的变量与方法。在构建一个系统时,这机制让我们强烈地感觉到编程是一门优雅的艺术。   来段小小的代码简单地展示下: public?class?Test?...{ ????public?static?void?main(String[]?args)?...{ ????????Programmer?pro?=?new?Programmer(Jack); ???????? ????????pro.printName(); ????????pro.printProfession(); ????} } class?Man?...{ ????private?String?name?=?null; ????public?final?String?characteristic?=?I?am?a?thinking?animal; ???? ????public?Man(String?name)?...{ ????????this.name?=?name; ????} ???? ????public?void?printName()?...{ ????????System.out.println(name); ????} } class?Programmer?extends?Man?...{ ????private?String?profession?=?Programmer; ????public?Programmer(String?name)?...{ ????????super(name); ????}? ????public?void?printProfession()?...{ ????????System.out.println(characteristic?+?,?and?a??+?profession);????}}   结果如下: Jack I?am?a?thinking?animal,?and?a?Programmer   如上,子类Programmer中并没定义字符串characteristic,但我们却在其方法printProfession()中调用了;同样,我们正常使用了父类定义的printName()方法。而这就是继承的简单实现。   继承不仅仅带来以上特性。它还赋予子类重写(覆盖)父类方法的能力(因为旨在讲类方法的重写,所以这儿就不讲重载以及变量在继承机制中的问题了)。方法的重写(覆盖):继承父类的子类,可以通过拟具有相同方法名与参数组的方法来重写父类中对应的方法,从而让子类更个性化。又因为重写(覆盖)的出现,多态也随之产生。多态:通过父类变量可以引用其子类对象,从而调用子类中那些继承自自己并被

文档评论(0)

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

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

1亿VIP精品文档

相关文档