开发工具与关键技术: MVC 撰写时间:2021/9/8
下面我们来讲C#中类的继承;
-
继承的概念: (1) 通过一个类来定义另一个类; (2) 创建新类时,不需要完全去编写类的成员,只需要新类继承已创建好的类,即可继承已有类的成员; (3) 被继承的类为基类(父类),新创建的类为派生类(子类); -
继承的特点: (1) 派生类中可以添加新成员,但不能移除已继承的基类中成员,但可以使用new关键字新命名同名的成员覆盖继承的成员,并不是删除,只是不能再访问被覆盖的成员 (2) 继承存在传递性,在多重继承中,最后继承的派生类将拥有之前被继承类中的成员 (3) 类中除了构造函数与析构函数不能被继承,其它成员都能被继承 (4) 类可以定义虚方法、虚属性及虚索引指示器,它的派生类能够重载这些成员,从而使类可以展示出多态性 (5) 派生类只能从一个类中继承,可以通过接口来实现多重继承 -
Object类:所有类都默认继承了Object类,该类提供了4个常用方法,即Equals、GetHashCode、GetType、Tostring方法 (1) Equals方法:用于比较两个对象是否相等,相等返回True,否则返回False,该方 法提供了两个,一个静态,具有两个参数;一个非静态,只有一个参数 (2) GetHashCode方法:返回当前System.Object的哈希代码,每个对象都有固定的哈希值,该方法不带有任何参数,且不是静态方法,需要使用实例来调用; (3) GetType方法:获取当前实例的类型,返回System.Type类型的值 (4) ToString方法: 对于对象实例,返回一个对象实例的字符串,在默认情况下将返回类类型的限定名;对于值类型,则为将值转换为字符串类型的值;任何类都可以重写 ToString 方法,返回自定义的字符串 -
继承中的常用关键字: (1) base:当子类需要调用父类中的成员时,可以借助base关键字来完成; (2)virtual:将类中成员定义成虚拟的,表示这些成员在继承后将重写;子类中的重写方法默认带有virtual修饰,具有传递性;不能修饰使用static修饰的成员; (3)abstract:抽象的,抽象方法必须定义在抽象类中;抽象方法不具有方法体,需要在子类中必须重新定义父类的抽象方法;抽象类中可定义抽象方法,也可以定义非抽象成员;抽象类可以定义构造方法,但抽象类无法被实例化 (4)sealed:密封的,不能被继承,不能被重写;密封方法必须出现在子类中,并且是子类重写父类的方法,故sealed关键字必须与override关键字一起使用
以上就是C#中类的继承。
|