第6章 面向对象编程进阶.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:40 大小:1.9MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第6章 面向对象编程进阶.ppt

第6章面向对象编程进阶.ppt

预览

免费试读已结束,剩余 30 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第6章面向对象编程进阶6.1继承与派生的概念图6-1类之间的继承与派生关系6.2类的继承【例6-1】创建一个一般学生类Student,然后创建Student类的子类——大学生类CStudent,体会成员变量和成员方法的继承。classStudent//定义一般学生类,父类{publicstaticstringsClassName="软件一班";//静态字段publicstringSName="王丽";//公有字段privateintAge=21;//私有字段,不被继承protectedstringSex="女";//保护成员变量publicvoidWriteAge()//公有成员方法{Console.WriteLine(this.Age);}privatevoidWriteSName()//私有成员方法,不被继承{Console.WriteLine(SName);}}classCStudent:Student//定义大学生类,子类{privatestringDepartment;//定义私有成员变量publicCStudent(string_Department,string_SName,string_Sex){Department=_Department;SName=_SName;Sex=_Sex;}//定义公有成员方法,成员变量SName,Sex,sClassName由父类继承而来publicvoidWriteCStudentInfo(){Console.Write("{0},{1},{2},{3},",SName,Sex,Department,sClassName);//此成员方法来自父类WriteAge();}}classProgram{staticvoidMain(string[]args){CStudentcstu1=newCStudent("计算机系","张三","男");cstu1.WriteCStudentInfo();}}6.2.2构造函数与析构函数派生类的构造函数执行顺序如下:(1)按被继承时说明顺序,调用基类的构造函数。(2)调用派生类构造函数体中的内容。2.析构函数当对象被删除时,派生类的析构函数被执行。由于析构函数也不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是:classStudent{publicstaticstringsDepartment="软件工程系";privatestringsClass;//私有字段publicStudent(stringc)//构造函数{sClass=c;}~Student(){Console.WriteLine(“执行父类析构函数”);}publicvoidWriteClass(){Console.WriteLine(this.sClass);}}classCStudent:Student//定义大学生类,即子类{privateintAge;//定义私有字段privatestringSName,Sex;//定义私有字段//定义构造函数publicCStudent(stringc,stringn,strings,inta):base(c){SName=n;Sex=s;Age=a;}~CStudent(){Console.WriteLine("执行子类析构函数");}publicvoidWriteCStudentInfo(){Console.Write("{0},{1},{2},{3},",CStudent.sDepartment,SName,Sex,Age);WriteClass();//此成员方法来自父类}}classProgram{staticvoidMain(string[]args){CStudentcstu1=newCStudent("O6级软件4班","张三","男",23);cstu1.WriteCStudentInfo();}}6.2.3成员的继承、添加和隐藏publicclassPerson{privatestringname;privateintage;privatelongID;publicPerson(stringn,inta,longi){name=n;age=a;ID=i;}publicvoidDisplay(){Console.WriteLine("Name:{0}",name);Console.WriteLine("Age:{0}",age);Console.WriteLine("ID:{0}",I