C#设计:封装、继承与多态基础

需积分: 21 0 下载量 92 浏览量 更新于2024-07-13 收藏 848KB PPT 举报
本文档主要介绍了C#中的"SimpleStruct"结构体以及面向对象编程的三个核心概念——封装、继承和多态。首先,我们来看看"SimpleStruct"结构体的设计: 结构体`SimpleStruct`包含三个成员: 1. 私有字段`xval`:这是结构体内部的变量,其访问权限被限制在结构体内部,外部代码无法直接访问。这是封装的一部分,隐藏了类的具体实现细节。 2. 公共属性`X`:它是一个整型字段,具有get和set方法。get方法用于获取`xval`的值,set方法则用于设置`xval`的值,但有一个条件,即新值不能小于100。这样实现了对数据的控制,强制用户通过特定接口(属性)来访问数据,防止直接修改,体现了封装和数据访问控制。 3. 公共方法`DisplayX()`:该方法用于在控制台上输出存储的值,提供了一种对外访问结构体内部数据的方式,保持了对外接口的稳定性,便于维护。 接下来,文档讲解了面向对象的三大特性: - 封装:它是将数据(如`xval`)和操作(如get和set方法)结合在一起,并控制哪些部分对外可见。在C#中,封装通过访问修饰符(如private、public、protected等)实现,隐藏内部实现,提供统一的接口供外部使用。 - 继承:C#中的继承允许子类(如`TrashCar`)从父类(如`Car`)继承属性和方法,实现代码重用。子类可以访问父类的`protected`和`public`成员,并且C#中默认情况下,所有类都继承自`System.Object`类。子类与父类之间的关系体现了特化(子类扩展或修改父类)和范化(父类定义基础,子类在此基础上增加或改变)原则。 - 多态:尽管文档没有直接提及多态,但通过继承的实例可以体现,父类型的引用变量(如`myCar`)可以指向子类型的对象(`TrashCar`),这正是多态性的体现,使得代码对不同类型的对象具有相同的处理方式。 在使用继承创建派生类时,需要注意以下几点: 1. 派生类继承基类的所有成员(除了构造函数和析构函数)。 2. 构造函数初始化时,会隐式或显式地调用基类的构造函数,这里演示了用`base(i)`显式调用基类带有参数的构造函数。 3. 调用基类的构造函数有助于确保在子类对象创建时,基类的初始状态被正确设置。 本文档详细介绍了C#中的结构体设计以及面向对象编程的关键概念,帮助读者理解如何利用这些特性来构建更高效、可维护的软件系统。