面向对象编程进阶

面向对象编程进阶

ID:39750712

大小:1.40 MB

页数:74页

时间:2019-07-10

面向对象编程进阶_第1页
面向对象编程进阶_第2页
面向对象编程进阶_第3页
面向对象编程进阶_第4页
面向对象编程进阶_第5页
资源描述:

《面向对象编程进阶》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章面向对象编程进阶本章要点通过本章的学习,使读者:理解基类和派生类的概念,理解继承是如何提高软件可重用性的熟练掌握派生类的定义方法和应用掌握接口概念和实现方法,能够用接口技术实现多继承功能了解委托和事件的概念、声明方法和应用了解并掌握异常处理方法6.1继承与派生的概念6.1.1继承继承允许在已有类的基础上创建新的类,新类可以从一个或多个既有类中继承函数和数据,而且可以加入新的函数和数据6.1.2派生由已存在的类派生出的新类称为派生类,又称为子类。在C++语言中,一个派生类可以从一个基类派生,也可以从多个基派生。但C#不支持多基派生,只支持单基派生。从一个基

2、类派生的继承称为单继承;图6-1类之间的继承与派生关系B1、B2的基类A的派生类C1、C2的基类A的派生类(单继承)C3的基B2的派生类(单继承)B1的派生类AB1B2C1C2C3案例分析:交通工具演变规律交通工具客车货车自行车板车出租车中巴车交通工具的体系图案例分析:交通工具演变规律我们要研究的三种类型车的关系6.2类的继承6.2.1基类与派生类在C#中,派生类的语法格式如下:“访问控制修饰符”可以是public,protected和private等。通常使用public以保证类的开放性,并且public可以省略,因为类定义的访问控制默认public。访问修饰符cla

3、ss子类名称:父类名{类的主体}【例6-1】创建一个一般学生类Student,然后创建Student类的子类——大学生类CStudent,体会成员变量和成员方法的继承。classStudent//定义一般学生类,父类{publicstaticstringsClassName="软件一班";//静态字段publicstringSName="王丽";//公有字段privateintAge=21;//私有字段,不被继承protectedstringSex="女";//保护成员变量publicvoidWriteAge()//公有成员方法{Console.WriteLine(th

4、is.Age);}privatevoidWriteSName()//私有成员方法,不被继承{Console.WriteLine(SName);}}StudentclassCStudent:Student//定义大学生类,子类{privatestringDepartment;//定义私有成员变量publicCStudent(string_Department,string_SName,string_Sex){Department=_Department;SName=_SName;Sex=_Sex;}//定义公有成员方法,成员变量SName,Sex,sClassName由父

5、类继承而来publicvoidWriteCStudentInfo(){Console.Write("{0},{1},{2},{3},",SName,Sex,Department,sClassName);//此成员方法来自父类WriteAge();}}classProgram{staticvoidMain(string[]args){CStudentcstu1=newCStudent("计算机系","张三","男");cstu1.WriteCStudentInfo();}}CStudent类继承自Student类6.2.2构造函数与析构函数派生类构造函数的一般格式如下:<

6、派生类名>(<参数表>):base(<参数表>){<派生类中新增数据成员初始化语句>};在派生类构造函数的参数表中,给出了初始化基类数据和新增一般成员数据所需要的全部参数。派生类的构造函数执行顺序如下:(1)按被继承时说明顺序,调用基类的构造函数。(2)调用派生类构造函数体中的内容。2.析构函数当对象被删除时,派生类的析构函数被执行。由于析构函数也不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是:①执行派生类的析构函数②执行基类的析构函数其顺序与执行构造函数时的顺序正好相反classStudent{publicstaticstringsDe

7、partment="软件工程系";privatestringsClass;//私有字段publicStudent(stringc)//构造函数{sClass=c;}~Student(){Console.WriteLine(“执行父类析构函数”);}publicvoidWriteClass(){Console.WriteLine(this.sClass);}}classCStudent:Student//定义大学生类,即子类{privateintAge;//定义私有字段privatestringSName,Sex;//定义私有字段//定义构

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。