c# 第八章 多态与案例

发布时间:2026/7/18 21:58:10
c# 第八章 多态与案例 51 接口interfaceusingSystem.Diagnostics;interfaceIFlyable{voidFly();intMaxALtitude{get;set;}}classBird:IFlyable{privateintmaxAltitude;publicvoidFly(){Console.WriteLine(鸟在飞);}publicintMaxALtitude{get{returnmaxAltitude;}set{maxAltitudevalue;}}}publicclassAaaa{publicstaticvoidMain(){IFlyablebirdnewBird();bird.Fly();}}一个类可以实现多个接口密封类 sealed与override 限制使用sealed的类不能被继承可以被实例化可以继承别的类usingSystem.Diagnostics;classBaseClass{publicvirtualvoidMethod(){Console.WriteLine(基类放发);}}classDerivedClass:BaseClass{publicsealedoverridevoidMethod(){Console.WriteLine(派生类方法);}}classFurtherDerivedClass:DerivedClass{publicoverridevoidMethod()//错误{Console.WriteLine(进一步派生类方法);}}案例1usingSystem.Diagnostics;usingSystem.Drawing;namespaceaaaa{internalclassProgram{staticvoidMain(string[]args){IDrawable[]drawablesnewIDrawable[]{newCircle(红色,10,20,5.0),};}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceaaaa{internalclassCircle:Shape,IDrawable,ICalculable{privatedoubleradius;publicCircle(stringcolor,intx,inty,doubleradius):base(color,x,y){this.radiusradius;}publicvoidDraw(){Console.WriteLine($绘制图形颜色{Color}半径{radius});}publicdoubleGetArea(){returnMath.PI*radius*radius;}publicdoubleGetPerimeter(){return2*Math.PI*radius;}publicoverridevoidDisplayInfo(){base.DisplayInfo();Console.WriteLine($类型圆半径{radius});}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceaaaa{abstractinternalclassShape{publicstringColor{get;set;}publicintX{get;set;}publicintY{get;set;}publicShape(stringcolor,intx,inty){Colorcolor;Xx;Yy;}publicvirtualvoidDisplayInfo(){Console.WriteLine($颜色{Color},位置{X},{Y});}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceaaaa{internalinterfaceICalculable{doubleGetArea();doubleGetPerimeter();}}usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceaaaa{internalinterfaceIDrawable{voidDraw();}}