第7章_C#面向对象编程基础

第7章_C#面向对象编程基础

ID:43218700

大小:1.83 MB

页数:67页

时间:2019-10-04

第7章_C#面向对象编程基础_第1页
第7章_C#面向对象编程基础_第2页
第7章_C#面向对象编程基础_第3页
第7章_C#面向对象编程基础_第4页
第7章_C#面向对象编程基础_第5页
资源描述:

《第7章_C#面向对象编程基础》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7章C#面向对象编程基础本章要点7.1类和继承7.2多态7.3命名空间和程序集7.1类继承7.2访问继承的成员7.3隐藏基类成员7.4基类访问7.5使用基类的引用7.6构造函数的执行7.7成员访问修饰符7.8抽象成员7.9抽象类7.10密封类7.11静态类7.12扩展方法7.13外部方法7.1类继承通过继承我们可以定义一个新类,新类纳入一个已经声明的类并进行扩展。可以使用一个已经存在的类作为新类的基础。已存在的类称为基类(baseclass),新类称为派生类(derivedclass)。派生类成员的组成

2、如下:自己声明中的成员基类的成员要声明一个派生类,需要在类名后加入基类规则说明。基类规则说明由冒号和后面跟着用作基类的名称组成。派生类被描述为直接继承自列出的基类派生类被描述为扩展它的基类,因为它包含了基类的成员,加上在它自己的声明中的任何附加功能派生类不能删除它所继承的任何成员7.1类继承7.2访问继承的成员继承的成员可以被访问,就像它们是派生类自己声明的一样。例子:AccessBaseClassMember.sln7.2访问继承的成员所有类都派生自object类除了特殊的类object,所有的类都是派

3、生类,即使它们没有基类规格说明。类object是唯一的非派生类,因为它是继承层次结构的基础。没有基类规格说明的类隐式地直接派生自object。不加基类规格说明只是指定object为基类的简写。所有类都派生自object类关于类继承的其他重要内容如下:一个类声明的基类规格说明只能有一个单独的类。这称为单继承。虽然类只能直接继承一个基类,但继承的层次没有限制。也就是说,作为基类的类可以派生自另外一个类,而它又可以派生自另外一个类,一直下去,直至最终到object。7.3隐藏基类成员虽然派生类不能删除它继承的任

4、何成员,但它可以隐藏它们。要隐藏一个继承的数据成员。需要声明一个新的相同类型的成员,并使用相同的名称通过在派生类中声明新的带有相同签名的函数成员,可以隐藏或掩盖继承的函数成员要让编译器知道我们在故意隐藏继承的成员,使用new修饰符。没有它,程序可以成功编译,但编译器会警告隐藏了一个继承的成员也可以隐藏静态成员例子:MaskBaseMember.sln7.3隐藏基类成员7.4基类访问有时,派生类需要访问被隐藏的继承成员。可以使用基类访问表达式访问隐藏的基类成员。基类访问表达式由关键字base后面跟着一个点和

5、成员的名称组成,如下所示:7.4基类访问7.5使用基类的引用派生类的实例由基类的实例加上派生类附加的成员组成。派生类的引用指向整个类对象,包括基类部分。如果有一个派生类对象的引用,就可以获取该对象基类部分的引用,使用类型转换运算符把该引用转换为基类类型。类型转换运算符放在对象引用的前面,由圆括号括起的要被转换成的类名组成。例子:UseBaseReference.sln7.5使用基类的引用虚方法和覆写方法前面我们看到,当使用基类引用访问派生类对象时,得到的是基类的成员。虚方法可以使基类的引用访问“升至”派生

6、类内。可以使用基类引用调用派生类的方法,只需要满足下面的条件:派生类的方法和基类的方法有相同的签名和返回类型基类的方法使用virtual标注派生类的方法使用override标注虚方法和覆写方法虚方法和覆写方法关于virtual和override修饰符的重要事项如下所示:覆写和被覆写的方法必须有相同可访问性。也就是说,被覆写的方法不能是private等,而覆写方法是public不能覆写static方法或非虚方法方法、属性和索引,以及事件,它们都可以被声明为virtual和override。例子:Virtua

7、lMethod.sln覆写标记为override的方法覆写方法可以在继承的任何层次出现:当使用对象基类部分的引用调用一个覆写的方法时,方法的调用被沿派生层次上溯执行,一直到标记为override的方法的最派生(most-derived)版本。情况1:使用override声明例子:Virtual_override.sln情况2:使用new声明例子:Virtual_override_new.sln7.6构造函数的执行在前面,我们看到构造函数执行代码,准备一个类以使用。这包括初始化类的静态成员和实例成员。在这一

8、部分,我们会看到派生类对象有一部分就是基类对象。要创建对象的基类部分,基类的一个构造函数被作为创建实例过程的一部分被调用继承层次链中的每个类在执行它自己的构造函数之前执行它的基类的构造函数7.6构造函数的执行当一个实例被创建时,完成的第一件事是初始化对象的所有实例成员。在此之后,基类的构造函数被调用,然后该类自己的构造函数才被执行。构造函数初始化语句默认情况下,在对象被构造时,基类的无参数构造函数被调用。但构造函数可以被重载,

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

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

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