C#基础学习第三篇:继承
来源:互联网 发布:中航led控制软件 编辑:程序博客网 时间:2024/06/03 14:33
1.继承的类型
实现继承和接口继承
实现继承:表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数。
接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码。
多重继承:
c#不支持多重实现继承,支持多重接口继承
结构和类:
结构不支持继承,结构派生自System.ValueType,类派生自System.Obejct
实现继承:
基类:
class MyClass{}
继承基类:
class MynewClass : MyClass{}
如果类或者结构也派生自接口,则用逗号分隔列表中的基类和接口
虚方法:
把一个基类函数声明为virtual,就可以在任何派生类中重写改函数:
class MyBaseClass { /// <summary> /// 虚方法,可以在任何继承该类的子类中重写 /// </summary> /// <returns></returns> public virtual string VirtualMethod() { return "this is VirtualMethod"; } }
也可以把属性声明为virtual,对于虚属性或者重写属性,语法和虚方法一样
C#虚函数的概念和标准OOP的概念一样:可以再派生类中重写虚函数,在调用方法时,会调用该类对象的合适方法。C#要求派生类的函数重写另一个函数时,要使用override关键字显示声明:
class MyClass:MyBaseClass { /// <summary> /// 重写父类的方法 /// </summary> /// <returns></returns> public override string VirtualMethod() { return base.VirtualMethod(); } }
隐藏方法:
如果签名相同的方法在基类和派生类都进行了声明,但该方法没有分别声明virtual和override,派生类方法就好隐藏基类方法。
在C#中隐藏一个方法应该使用new关键字声明
class YouClass:MyClass { private new void Play() { } }
调用函数的基类版本:
base
抽象类和抽象函数
c#允许把类和函数声明为abstract,抽象类不能实例化,而抽象函数不能直接实现,必须在非抽象类中重写,如果类包含抽象函数,则该类也是抽象的,也必须声明为抽象的
密封类和密封方法
c#允许把类和方法声明为sealed,对于类,这表示不能继承该类,对于方法表示不能重写改方法。
修饰符
可见性修饰符:
不能把类定义为protected,private,protected internal因为这些修饰符对于包含在名称空间中的类型没有意义。
其他修饰符:
接口:
如果一个雷派生自一个接口,声明这个类就会实现接口的某些函数。
public interface Mclass { void dispose(); } class YouClass:MyClass, Mclass { public void dispose() { } private new void Play() { } }
定义和实现接口:
public interface Mclass { void dispose(); decimal balane { get; } }
ps:接口名称一般用I开头
- C#基础学习第三篇:继承
- C#基础学习第三篇: 泛型
- C#基础之继承
- c# 学习笔记 继承
- C#学习之继承
- c#学习之--继承
- Swift 基础学习(继承)
- 基础学习第三弹
- OC基础第三章: 继承 、 封装、多态
- Visual C# 技术内幕学习笔记 第二章 C#基础(3) 继承和方法
- 【c#学习笔记】 基础篇
- C#学习基础篇----基础语法
- 二、C#学习基础篇----基础语法
- 【C#学习】C#基础
- C#学习笔记008-继承
- 学习C# 继承 封装 多态
- C#学习笔记之继承
- C#学习笔记------3、继承
- hibernate 关联关系(多对一、多对多、一对一)的配置
- Spring分模块开发
- Improving Deep Neural Networks Regularization 参考答案
- Spark action算子案例
- LeetCode: Palindrome Number
- C#基础学习第三篇:继承
- 【个人训练】(POJ1328)Radar Installation
- c提高1
- OpenJudge百炼-2809-计算2的N次方-C语言-高精度计算
- 可扩展对话框
- spring + shiro + cas 实现sso单点登录
- PAT乙级1069. 微博转发抽奖(20)
- 循环&条件
- (一)SDN基本架构