如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第4章面向对象编程进阶4.1类的继承与多态继承是面向对象语言的基本特征,是实现代码复用的手段。继承使得在原有的类基础之上,对原有的程序进行扩展,从而提高程序开发的速度,实现代码的复用。同一种方法作用于不同对象可以产生不同的结果,这就是多态性。它是在基类中使用虚方法,在其派生类中使用重载实现的。4.1.1继承1.使用继承继承不但可以使用现有类的所有功能,还可以对这些功能进行扩展。继承产生的类称为派生类或子类,而被继承的类则称为基类、超类或父类。客观世界中的许多事物之间往往都具有相同的特征,具有继承的特点。采用类的层次图表示继承的例子【例4.1】类的继承。usingSystem;//定义基类ShapepublicclassShape{protectedstringColor;publicShape(){;}publicShape(stringColor){this.Color=Color;}publicstringGetColor(){returnColor;}}//定义Circle类,从Shape类中派生publicclassCircle:Shape{privatedoubleRadius;publicCircle(stringColor,doubleRadius){this.Color=Color;this.Radius=Radius;}publicdoubleGetArea(){returnSystem.Math.PI*Radius*Radius;}}//派生类Rectangular,从Shape类中派生publicclassRectangular:Shape{protecteddoubleLength,Width;publicRectangular(){Length=Width=0;}publicRectangular(stringColor,doubleLength,doubleWidth){this.Color=Color;this.Length=Length;this.Width=Width;}publicdoubleAreaIs(){returnLength*Width;}publicdoublePerimeterIs()//周长{return(2*(Length+Width));}}//派生类Square,从Rectangular类中派生publicclassSquare:Rectangular{publicSquare(stringColor,doubleSide){this.Color=Color;this.Length=this.Width=Side;}}publicclassTestInheritance{publicstaticvoidMain(){CircleCir=newCircle("orange",3.0);Console.WriteLine("Circlecoloris{0},Circleareais{1}",Cir.GetColor(),Cir.GetArea());RectangularRect=newRectangular("red",13.0,2.0);Console.WriteLine("Rectangualrcoloris{0},Rectangualrareais{1},Rectangularperimeteris{2}",Rect.GetColor(),Rect.AreaIs(),Rect.PerimeterIs());SquareSqu=newSquare("green",5.0);Console.WriteLine("Squarecoloris{0},SquareAreais{1},Squareperimeteris{2}",Squ.GetColor(),Squ.AreaIs(),Squ.PerimeterIs());}}基类Shape直接派生了Circle和Rectangular类,Rectangular类又派生了Square类。因为基类的字段Color的修饰符为protected,方法都可使用。派生类在继承基类的成员基础上,也可以各自增加功能。2.base关键字例4.1程序中的Square类也可以改写成://派生类Square,从Rectangular类中派生publicclassSquare:Rectangular{publicSquare(stringColor,doubleSide)