预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共40页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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