java-面向对象(高级篇)--继承的进一步研究

java-面向对象(高级篇)--继承的进一步研究

ID:33909023

大小:68.97 KB

页数:6页

时间:2019-03-01

java-面向对象(高级篇)--继承的进一步研究_第1页
java-面向对象(高级篇)--继承的进一步研究_第2页
java-面向对象(高级篇)--继承的进一步研究_第3页
java-面向对象(高级篇)--继承的进一步研究_第4页
java-面向对象(高级篇)--继承的进一步研究_第5页
资源描述:

《java-面向对象(高级篇)--继承的进一步研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、了解了继承的基本概念后,下面对继承操作屮的一些注意点进行研究。一.子类对象的实例化过程在继承的操作中,对于子类对象实例化也是有要求的,及子类对象在实例化之前必须首先调用父类中的构造方法后在调用自己的构造方法。【子类的实例化过程】classPersonprivateStringname;privateintage;publicPerson(){System.out.printlnC这是父类中的构造方法”);}publicStringgetName(){returnname;}publicvoidsetName(Stringname)

2、{this,name二name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}}classStudentextendsPersonprivateStringschool;publicStudent(){System.out.println("ii是子类中的构造方法");}publicvoidsetSchool(Stringschool){this.school=school;publicStringgetSchool(){returnsch

3、ool;}}publicclassExtDemo2{publicstaticvoidmain(Stringargs[]){Studentstu二newStudent();stu.setName("张三”);stu.setAge(19);stu.setSchool("ZZUH);System.out.printlnf"姓名:"+stu.getName()+",年龄:,,+stu.getAge()+",学校:"+stu.getSchool());}}运行结果为:avaExtDemo2蹄'zzu从运行结果可以清楚的发现,子类对象在实例化

4、前会默认调用父类屮的构造方法。就好像没有父类就没有孩子。当然对于以上代码实际上在子类的构造方法中隐含了一个super()的语法,代码如下:classStudentextendsPerson{privateStringschool;publicStudent(){super();System,out.println(“这是子类中的构造方法”);}publicvoidsetSchool(Stringschool){this.school=school;publicStringgetSchool(){returnschool;}}以上程

5、序的运行结果与之前是一样的。super表示超级的意思,在一些书中也喜欢把父类叫做超类,上面的语法就是表示子类可以直接使用super()调用父类(超类)中的无参构造。一.方法的覆写在继承的关系中也存在着方法覆写的概念,所谓的方法覆写就是子类定义了与父类中名称相同的方法,但是在覆写时必须考虑到权限,即被子类覆写的方法不能拥有比父类方法更严格的访问权限。【方法的覆写】classPerson{voidprint(){System.out.println("Person—>voidprint(){}");}}classStudentexte

6、ndsPerson{publicvoidprint(){System.out.println("Student->voidprint(){}");}}publicclassOverrideDemoOl{publicstaticvoidmain(Stringargs[]){newStudent().print();}}运行结杲为:V:zhao>javaOverrideDemoOlStudent—>YoidprintO{}从程序的运行结果可以发现,Student子类定义了与Person父类中同名的方法,但是在子类中此方法的访问权限被

7、扩大了,符合覆写的概念,当方法被覆写后,子类对彖调用的就是被覆写后的方法。需要注意的是,在被子类覆写的方法权限缩小吋,会在编译吋产生错误。实际上与方法的覆写概念相同的还有另外一种称为属性的覆盖,这点在开发中使用较少。【属性的覆盖】classPerson{publicStringinfo=HZZU";}classStudentextendsPerson{publicStringinfo="zhaoH;publicvoidprint(){System.out.println("父类中的属性:"+super.info);System.o

8、ut.printlnf"子类中的属性:H+this.info);}}publicclassOverrideDemo05{publicstaticvoidmain(Stringargs[]){newStudent().print();}}I:zha

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。