52Java第04章--1(继承和多态)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JavaJavapenggang@mail.hust.edu.cnJavaJava(())1.Java(Inheritance)2.Java(Polymorphism)3.4.5.6.4.1JavaJava1.Javaƒƒƒƒ“”InheritanceRelationship1.Javaƒ”“isa”“hasa”ƒPointCircleCirclePointCircleextendsPointƒ“”CirclePointCirclePointsubclassPointCircledirectsuperclassƒƒCircleCylinderCylinderCircleDirectSubclassCircleCylinderPointCylinderIndirectSuperclassCylinderPointIndirectsubclassƒCylinderCircleDirectRelationshipIndirectRelationship1.JavaƒJavaC++JavaƒƒPointCirclexyCircleƒ1.Java1.Java1.JavaƒJavainterfaceƒjava.langObjectObjectObjectƒ1.JavasuperƒJavathissuperƒsuper(r,a,b);ƒCircle(double,int,int)ƒƒSuperSuper(())(())supera.;b..1.Javaƒƒ4.2P183:ReferenceTest.java1.JavaƒƒpointRefCirclecCylindercyƒƒPointƒ“”incompatibletypespointRefcpointRefppointRef=p;circleRef=(Circle)pointRef;ClassCastException1.JavaƒC++Javaƒ“super();”ƒ“super();”1ƒ4.4P1874.2JavaJava2.Javaƒ3Polymorphismpoly“”morphism“”ƒƒƒƒdraw()PointCircleCylinderPointdraw()Java——ƒOverloading‰int,float,String,printInt(int);printFloat(float);printString(String)‰println()println(int);println(float);println(String);Java——ƒOverridingƒ“Overloading”ƒOverridingJava——ƒ12Java——ƒƒ“”ƒ“”ƒƒƒ4.6P193StaticTest.javaJava——ƒz4.6zinstanceofz4.24.7P194:PolymorphismTest.javaJava——ƒzstaticStringpolymorMethod(Pointp)//zPointshapeArray[0],CircleÆPointshapeArray[1],RectangleÆPointzz“”4.34.3ƒabstractfinalabstractfinal„abstract„„final„„abstract„override„„„4.8P197:ShapeAbs.java4.3.1ƒabstractƒƒƒimplementsinterfaceƒ4.3.2ƒfinalfinalƒfinalfinalfinalƒjava.langStringpublicfinalclassStringƒƒfinal—hacker4.3.3ƒƒ1staticprivateabstractƒ2abstractƒ3ƒ4finalabstractƒ5abstractclassShape{abstractfloatarea();}classRectangleextendsShape{publicfloatwidth,height;Rectangle(floatw,floath){width=w;height=h;}publicfloatarea(){returnwidth*height;}}classCircleextendsShape{publicfloatr;Circle(floatr){this.r=r;}publicfloatarea(){return3.14*r*r;}}4.4Javainterface999Java“”VolumeControl“”ToneControlVolumeControlToneControl“”Java[public]interfaceinterfaceName[extendsSuperInterfaceList]{//[public][static][final]=;//[public][abstract];}„interfaceclass„class„public.java„Java9(1)publicpublic9(2)public9(3)publicstaticfinal3publicabstract9(4)implementsclassimplements[extends]{...finalabstract}2abstractfinal“”implementsimplementsextends4.5JavaJavaJavaƒJDK1.1classJDK1.1ƒ“”nestedclass“”outerclass“”enclosingclassƒ“memberclass”ƒclass1ƒƒWhy.4.11P207InnerTest.javaƒƒOuterOneouterOuterOne.FriendInnersou=outer.sour(China);ƒthisƒpublicprotectedprivateƒOuterOnedest()cont()sour()ƒstatic“”StaticInnerClass4.12P210:TestBed.javapublicclassTestBed{privateintx;staticinty=12;//yTestBed(inta){x=a;}intxValue(){returnx;}publicstaticclassTester{//TesterintyValue(){returny;}////}publicstaticvoidmain(String[]args){Testertt=newTester();TestBedtb=newTestBed(4374);System.out.println((1)tt.y=+tt.yValue());System.out.println((2)tb.x=+tb.xValue());}//main}//}JavaTestBedJavaTestBed$Tester2ƒƒ“”Enclosingmethodƒstaticstaticfinal4.13P211InnerOfMethodTest.java2ƒƒnewYyy(){}classXxxextendsYyy{}newXxx()//XxxYyyƒreturnƒreturnnewYyy(){}ƒfunction(newYyy(){…});ƒ(Yyy)4.14P213:AnonymousTest1.java4.15P2154.61.ƒclassPoint{...}classCircleextendsPoint{...}...Pointp=newPoint();Circlec=newCircle();p=c;ƒCirclecPointppOOPƒ“”upstaticintcompare(Pointa,Pointb){…}main{…if(compare(c1,c2)0)…}ƒ1Pointƒ2“”incompatibletypesƒ3precpCirclecc=(Circle)p;ClassCastException1Java23JavaƒJavaƒƒ

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功