欢迎来到天天文库
浏览记录
ID:57057941
大小:1.97 MB
页数:99页
时间:2020-07-30
《java面向对象程序设计第六章课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java初级第六章面向对象(下)1主要内容:this与super构造方法的多态与继承抽象类接口抽象类与接口引用类的其他相关内容2this与super3thisthis指代当前对象,主要应用场合:在一些容易混淆的场合,如成员方法的参数名与数据成员同名;成员方法的局部变量名与数据成员同名。this.数据成员this.成员方法this(参数)——引用重载的构造方法(见后节)4this——例1publicclassTest{inti;publicTest(inti){this.i=i;//与方法参数名相
2、同}publicvoidotherMethod(){inti=3;this.i=i+2;//与局部变量名相同}}注意:this.i指的是类定义的属性i,而i指的是局部变量i。5this——例2classFighterPlane{privateStringname;privateintmissileNum;privateAa;publicFighterPlane(String_name,int_missileNum){this.name=_name;this.missileNum=_missile
3、Num;}publicvoidsetA(A_a){if(_a!=null){this.a=_a;}}publicStringgetName(){returnthis.name;}}classA{FighterPlanefp;publicA(FighterPlanefpp){this.fp=fpp;fpp.setA(this);}publicvoidinvoke(){//发送消息给FighterPlane的对象System.out.println(this.fp.getName());}}publ
4、icclassRun{publicstaticvoidmain(String[]args){FighterPlaneftp=newFighterPlane("su35",10);Aa=newA(ftp);a.invoke();}}6supersuper访问当前类的直接父类,主要应用场合:子类的数据成员或成员方法与父类的数据成员或成员方法名字相同时,当要调用父类的同名方法或同名数据成员时则可用super来指明。super.数据成员super.成员方法(参数)super(参数)//调用父类构造函数7
5、super——例1classA{intx=4;inty=1;publicvoidPrintme(){System.out.println("x="+x+"y="+y);System.out.println("classname:"+getClass().getName());}}publicclassAAextendsA{intx;publicvoidPrintme(){intz=super.x+6;super.x=5;super.Printme();System.out.println("Ia
6、man"+getClass().getName());x=6;System.out.println("z="+z+"x="+x+"super.x="+super.x+"y="+y+"super.y="+y);}publicstaticvoidmain(Stringarg[]){intk;Ap1=newA();AAp2=newAA();p1.Printme();p2.Printme();}}8super——例1运行结果运行结果如下:x=4y=1classname:Ax=5y=1classname:
7、AAIamanAAz=10x=6super.x=5y=1super.y=19super——例1讲解子类和父类定义了同名数据成员,子类继承了父类的x,自己又定义了一个x,则会发生父类数据成员的隐藏。在子类中用的x都是子类自己的,若要使用父类x,则必须用super.x。子类在覆盖父类方法的同时,调用父类的super.Printme(),这个方法中的成员变量均为父类的成员变量。super.Printme()中的代码虽然调用父类代码,但其中的this指的是子类对象。10Ax=4;y=1VoidPrint
8、me(){}AAx=4;y=1xVoidPrintme(){}intz=super.x+6;super.x=5super.Printme();System.out.println("Iaman"+this.getClass().getName());。。。。。。x=4在子类隐藏此处调用的是父类代码及父类中的属性成员。11构造方法的多态与继承12构造方法的多态构造方法的多态:重载和覆盖一个类的若干个重载的构造方法之间可以相互调用。当一个构造方法需要调用另一个构造方法时,可以使用关键字this,同时
此文档下载收益归作者所有