第7章C#面向对象编程基础.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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 类继承 通过继承我们可以定义一个新类,新类纳入一个已经声明的类并进行扩展。 可以使用一个已经存在的类作为新类的基础。已存在的类称为基类(base class),新类称为派生类(derived class)。派生类成员的组成如下: 自己声明中的成员 基类的成员 要声明一个派生类,需要在类名后加入基类规则说明。基类规则说明由冒号和后面跟着用作基类的名称组成。派生类被描述为直接继承自列出的基类 派生类被描述为扩展它的基类,因为它包含了基类的成员,加上在它自己的声明中的任何附加功能 派生类不能删除它所继承的任何成员 7.1 类继承 7.2 访问继承的成员 继承的成员可以被访问,就像它们是派生类自己声明的一样。 例子:AccessBaseClassMember.sln 7.2 访问继承的成员 所有类都派生自object类 除了特殊的类object,所有的类都是派生类,即使它们没有基类规格说明。类object是唯一的非派生类,因为它是继承层次结构的基础。 没有基类规格说明的类隐式地直接派生自object。不加基类规格说明只是指定object为基类的简写。 所有类都派生自object类 关于类继承的其他重要内容如下: 一个类声明的基类规格说明只能有一个单独的类。这称为单继承。 虽然类只能直接继承一个基类,但继承的层次没有限制。也就是说,作为基类的类可以派生自另外一个类,而它又可以派生自另外一个类,一直下去,直至最终到object。 7.3 隐藏基类成员 虽然派生类不能删除它继承的任何成员,但它可以隐藏它们。 要隐藏一个继承的数据成员。需要声明一个新的相同类型的成员,并使用相同的名称 通过在派生类中声明新的带有相同签名的函数成员,可以隐藏或掩盖继承的函数成员 要让编译器知道我们在故意隐藏继承的成员,使用new修饰符。没有它,程序可以成功编译,但编译器会警告隐藏了一个继承的成员 也可以隐藏静态成员 例子:MaskBaseMember.sln 7.3 隐藏基类成员 7.4 基类访问 有时,派生类需要访问被隐藏的继承成员。可以使用基类访问表达式访问隐藏的基类成员。基类访问表达式由关键字base后面跟着一个点和成员的名称组成,如下所示: 7.4 基类访问 7.5 使用基类的引用 派生类的实例由基类的实例加上派生类附加的成员组成。派生类的引用指向整个类对象,包括基类部分。 如果有一个派生类对象的引用,就可以获取该对象基类部分的引用,使用类型转换运算符把该引用转换为基类类型。类型转换运算符放在对象引用的前面,由圆括号括起的要被转换成的类名组成。 例子:UseBaseReference.sln 7.5 使用基类的引用 虚方法和覆写方法 前面我们看到,当使用基类引用访问派生类对象时,得到的是基类的成员。虚方法可以使基类的引用访问“升至”派生类内。 可以使用基类引用调用派生类的方法,只需要满足下面的条件: 派生类的方法和基类的方法有相同的签名和返回类型 基类的方法使用virtual标注 派生类的方法使用override标注 虚方法和覆写方法 虚方法和覆写方法 关于virtual和override修饰符的重要事项如下所示: 覆写和被覆写的方法必须有相同可访问性。也就是说,被覆写的方法不能是private等,而覆写方法是public 不能覆写static方法或非虚方法 方法、属性和索引,以及事件,它们都可以被声明为virtual和override。 例子:VirtualMethod.sln 覆写标记为override的方法 覆写方法可以在继承的任何层次出现: 当使用对象基类部分的引用调用一个覆写的方法时,方法的调用被沿派生层次上溯执行,一直到标记为override的方法的最派生(most-derived)版本。 情况1:使用override声明 例子:Virtual_override.sln 情况2:使用new声明 例子:Virtual_override_new.sln 7.6 构造函数的执行 在前面,我们看到构造函数执行代码,准备一个类以使用。这包括初始化类的静态成员和实例成员。在这一部分,我们会看到派生类对象有一部分就是基类对象。 要创建对象的基类部分,基类的一个构造函数被作为

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档