资源描述:
《论述c与c在继承性和多态性上的异同》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、论述C#与C++在继承性和多态性上的异同C++语言是一种同时支持面向过程程序设计和面向对彖程序设计的混合型高级程序设计语言。C++支持封装性、继承性和多态性。C#是从C和C++语言演化而来的,它在语句、表达式和运算符方面沿用了许多C++的功能,同时也有着相当大的改进和创新。为了提高软件模块的可复用性和可扩充性,以便提高软件的开发效率,我们总是希望能够利用前人或自己以前的开发成果,同时又希望在自己的开发过程中能够有足够的灵活性,不拘泥于复用的模块。C#这种完全面向对彖的程序设计语言提供了两个重要的特性一继承性和多态性。一、继承性:继承是面向对彖程序设计的主要特征之一,它可以
2、让您重用代码,可以节省程序设计的时I'可。继承就是在类之间建立一种相交关系,使得新定义的派生类的实例可以继承已有的基类的特征和能力,而且可以加入新的特性或者是修改己有的特性建立起类的新层次。我们从C#的派生和C++的派生类的定义格式和例子来分析。(1)C#:[访问修饰符]Class类名[:基类名]{类的成员;};例子:usingSystem;publicclassPerson//这是一个基类{//定义数据成员publicstringName;//姓名publiccharSex;//性别〃定义构造函数,以初始化字段publicPerson(stringname,charse
3、x){Name=name;Sex=sex;}//定义方法成员publicstringAnswer(){returnstring.Format(,z姓名:{0},性别:{1}°"、Name,Sex);pub1icclassStudent:Person//这是一个派生类//扩展数据成员publicstringSchool;//学校privateintScore;//成绩〃定义构造函数,自动调用基类的构造函数辅助完成字段的初始化publieStudent(stringname,charsex,stringschool,intscore):base(name,sex){Schoo
4、l=school;Score=score;}//扩展方法成员publicfloatExamine()//返回考试成绩{returnScore;}}classTestClass{staticvoidMain(){//创建Student对象Students=newStudent(/z张伟",’男',"电子科大成都学院",480);Console.WriteLine("该生信息如下:");Console.WriteLine(s.Answer());//调用对象继承来的方法Console.WriteLine(z,学校:{0},考试成绩:{1}〃,s.School,s.Examin
5、e());}}(1)C++:Class<派生类名〉:[继承方式]<基类名1>[,[继承方式]<基类名2>,、'、'[继承方式]<基类名3>]{〈派生类新增的数据成员和成员函数定义〉};例子:typedefcharstring80[80];classDate{pub1ic:DateO{}Date(inty,intm,intd){SetDate(y,m,d);}voidSetDate(inty,intm,intd)Year=y;Month=m;Day=d;}voldGetStringDate(string80&Date){sprintf(Date,"%d/%d/%d",Yea
6、r,Month,Day);}protected:intYear,Month,Day;};classTime{pub1ic:TimeO{}Time(inth,intm,ints){SetTime(h,m,s);}voidSetTime(inth,intm,ints){Hours=h;Minutes=m;Seconds=s;}voidGetStringTime(string80&Time){sprintf(Time,〃%d:%d:%cT,Hours,Minutes,Seconds);}protected:intHours,Minutes,Seconds;};classTime
7、Date:publicDate,publicTime{public:TimeDate():Date(){}Time(h,Seconds);TimeDate(inty,intmo,intd,inth,intmi,ints):Date(y,mo,d),mi,s){}voidGetStringDT(stringBO&DTstr){sprintf(DTstr,"%d/%d/%d;%d:%d:%d",Year,Month,Day,Hours,Minutes,}};voidmain()TimeDatedatel,date2(199&&12