您的位置:首页 > 游戏 > 手游 > 更合网站开发_织梦仿站_做公司网站需要多少钱_抖音seo排名

更合网站开发_织梦仿站_做公司网站需要多少钱_抖音seo排名

2024/12/23 8:40:22 来源:https://blog.csdn.net/m0_62388400/article/details/144419507  浏览:    关键词:更合网站开发_织梦仿站_做公司网站需要多少钱_抖音seo排名
更合网站开发_织梦仿站_做公司网站需要多少钱_抖音seo排名

基类与派生类

• 一个新类可以从已有类中获其特性,这种现象称为类的继承。

换句话说,从已有类创建一个新的类,称为类的派生。 将已有类称为基类或父类,新建类称为派生类或子类。

• 一个派生类能够继承已有类中的几乎全部成员(构造函数和析 构函数除外)。

• 派生类中可根据需要增加新成员、并对继承的方法进行扩充和 修改。

• 派生类比基类更加具体,而基类则是派生类的抽象。

• 在C#中,借助“:”构建派生类

C#中派生类声明的一般格式:

其中,基类名必须是已有类的名称,默认的基类名为object(System.Object), 可省略。

派生类名是新创建的类类型的名字。

对继承的几点说明

• C#仅支持单继承。即一个类只能从一 个直接基类派生。

• 派生类可作为其它派生类的基类;派 生的多个相关联类将构成一个类层次。

• 类层次中的最高层是object类,它是 任何类的直接或间接基类。

• 继承具有传递性。如果类A派生出类B, 类B派生出类C,则类C会继承类B和 类A中声明的几乎所有成员。

派生类中成员的可访问性

• 派生类全面继承基类中的成员。

在派生类中不能直接访问基类的私有 (private )成员,但可通过继承自基类的公有(public)属性或公有方法对 其私有成员进行操作。

• 例如:在派生类Manager中同样包含了四个字段,除新增的special字段外,其 余三个字段name,salary和depart都是来自基类Employee。

通过执行基类 Employee的公有方法Register()和Base.Show() 对基类中的三个私有字段进行 操作。

注意:基类中的公有属性、公有方法被派生类继承后,仍然保持其 公有特性,且在派生类中可以直接访问。

new关键字与base关键字

new关键字

用于在派生类中以“覆盖”方式声明与基类中同名的新方法。这时,在派 生类中系统将“隐藏”基类中的同名方法。如果需要使用被隐藏的方法可以借 助base关键字。

base关键字:指代基类。

• 在派生类中用以访问被“覆盖”的基类成员方法。如base.方法名()是指访问 与派生类同名的基类方法。

• 派生类的构造方法调用直接基类构造方法时,也使用base指代基类名。

使用NEW“覆盖”的基类方法通常具有与基类方法名,参数个数,参数类型完全 相同的格式。 

如果希望在派生类中能直接访问基类的私有成员,又不允许在类之外访问,可以将基 类中的私有(private)成员声明修改为保护成员(protected)。

保护成员

• 在C#中,类成员访问修饰符包括:private、public、internal和protected。 由protected修饰的成员称为保护成员。

• 保护成员不能在类外被类对象访问,这点与私有成员类似。但保护成员可以 被派生类的方法与属性引用,这一点与私有成员是不同的。

派生类可直接访问从基类继承的公有和保护成员。

但派生类方法覆 盖基类方法时,使用base.方法名()的形式可访问基类的方法。

注意:如果在类中声明了保护成员,就意味着该类可能要作为基 类,其派生类中要访问这些成员。

所有非私有基类成员在派生类中保持原访问修饰符(即基类的公 有和保护成员在派生类内中仍然是公有和保护的)。

派生类的构造函数

派生类构造函数的声明格式:

其中:base(参数表)为显式访问基类中带有参数的构造函数。

说明:对于基类的默认构造函数或不带参数的构造函数,系统在实例 化时会自动访问(隐式访问),在这种情况下,可以省略显式访问。 

派生类的构造函数执行顺序

• 在C#中,创建派生类对象时,系统将按照对象的类层次从低到高 逐层调用执行其直接基类的构造函数,直到无直接基类的最高层 类(object类),这时最先执行object类的构造函数体,最后执行 最底层类的构造函数体。

• object类是所有类的根,它有一个默认的构造函数。

• 基类的构造函数是为其派生类对象继承的基类实例变量初始化。 使用base关键字调用基类的构造方法。

• 例如:实例化一个C类对象时,构造函数的执行过程:

先访问C的构造函数;在执行C类构造函数体之前,先访问B的 构造函数,…,先访问基类object的构造函数。

接下来,依次执行 object类的构造函数体、A类的构造函数体、…

最后执行C类的 构造函数体

object类

object(System.Object 的别名)类是所有类的直接或间接基类,因此,我们可以把任何 类型的值赋给object 类型的变量。

• 该类提供了7个公共接口,任何对象都可以使用。 

1、Equals函数,该方法有重载函数

函数签名: public virtual bool Equals(Object obj) public static bool Equals(Object objA,Object objB)

• 作用:比较两个对象是否相等。相等时返回true,否则返回false。

• 默认情况下,对于引用类型,该方法对比的是引用的地址,对于值类型,比较的 是值的二进制描述是否相同。

2、GetType()函数 函数签名:public Type GetType()

作用:获取当前实例的确切运行时类型。

3、ToString()函数 函数签名:public virtual string ToString()

作用:返回一个代表当前对象的字符串 注意:默认情况下返回的是该对象所属类型的全名称。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com