C#基础概念 从新理解继承多态
2016-04-12 16:18
751 查看
继承 inherit 内容
先了解继承概念因为多态概念要基于继承.
官方概念:
Inheritance enables you to create new classes that reuse, extend, and modify the behavior that is defined in other classes.
基类中可以有abstract和virtual方法,他们是多态性的基础
Abstract class - 当希望基类不能通过new来实例化,必须从这个类派生出子类才能使用这个类时,就把他标记为abstract class. Abstract class中可以有field, property,有完全实现的方法,抽象方法和虚方法
Interface 接口理解成一个特殊的abstract class,特殊在他的所有成员都必须是abstract,必须在子类中实现。
接口的成员自动是public,不能是static,也不能含有常量,字段成员
意义:如果有手机,相机,Mp4三种类型的电子产品,比起分别在类中写不同名称和内容的’Charge’方法,让他们都继承IChargable接口而通知他们实现接口中的Charge方法更有利于统一化
结构体不能实现继承,但是可以实现接口
类可以将自身或其成员声明为 sealed,从而禁止其他类从该类自身或其任何成员继承
派生类隐藏基类成员(在多态new和virtual中解释)
多态 Polymorphism内容
Ref: 多态解释
new的用法比较陌生,记录一下
用new关键字代替override位置,可以隐藏基类成员.
现在有三种类:基类类型的基类,基类类型的子类,子类类型的子类。
在子类中用new更改一个成员时,只对子类类型的子类有效,从其他两种类型里调用这个new成员时,都还是基类的样子.
用override重写方法或属性后,就改变或者延伸了原方法,对子类类型的子类和基类类型的子类都有效。除非从基类类型的基类中调用这个方法才还是基类中的样子,因为override是在子类中进行的.
先了解继承概念因为多态概念要基于继承.
官方概念:
Inheritance enables you to create new classes that reuse, extend, and modify the behavior that is defined in other classes.
基类中可以有abstract和virtual方法,他们是多态性的基础
Abstract class - 当希望基类不能通过new来实例化,必须从这个类派生出子类才能使用这个类时,就把他标记为abstract class. Abstract class中可以有field, property,有完全实现的方法,抽象方法和虚方法
Interface 接口理解成一个特殊的abstract class,特殊在他的所有成员都必须是abstract,必须在子类中实现。
接口的成员自动是public,不能是static,也不能含有常量,字段成员
意义:如果有手机,相机,Mp4三种类型的电子产品,比起分别在类中写不同名称和内容的’Charge’方法,让他们都继承IChargable接口而通知他们实现接口中的Charge方法更有利于统一化
结构体不能实现继承,但是可以实现接口
类可以将自身或其成员声明为 sealed,从而禁止其他类从该类自身或其任何成员继承
派生类隐藏基类成员(在多态new和virtual中解释)
多态 Polymorphism内容
Ref: 多态解释
new的用法比较陌生,记录一下
用new关键字代替override位置,可以隐藏基类成员.
现在有三种类:基类类型的基类,基类类型的子类,子类类型的子类。
在子类中用new更改一个成员时,只对子类类型的子类有效,从其他两种类型里调用这个new成员时,都还是基类的样子.
用override重写方法或属性后,就改变或者延伸了原方法,对子类类型的子类和基类类型的子类都有效。除非从基类类型的基类中调用这个方法才还是基类中的样子,因为override是在子类中进行的.
相关文章推荐
- c#反射机制
- C#实现Excel动态生成PivotTable
- c#中DataTable和DataSet区别
- C#之Common
- 0基础学C#教程1--------comboBox的相关操作(包括下拉,多数据操作等等)
- C#解压GZ文件
- C# 如何在Excel 动态生成PivotTable
- C# 开启摄像头 拍照
- C# 订单流水号生成
- c#压缩和解压缩
- C# 利用ZedGraph控件画简单折线图示例
- C#自动实现Dll(OCX)控件注册的两种方法
- C#使用Cookie方法
- c#代码规范和质量检查工具这点事
- c# string 数组转 list
- C# Winform 删除信息提示
- C# 中的委托和事件
- C# Email发送
- C#文件操作
- c#指针和寻址运算