C#成神之路<20> C#多态继承
来源:互联网 发布:淘宝手机店铺装修代码 编辑:程序博客网 时间:2024/05/17 03:04
1、继承
注意每一个程序的背后:
public class frmMain:Form
上述语句使我们能够继承Windows窗体的所有基本功能。而不需要亲自编写代码。
继承:背后的驱动力是简化代码的编写。是一种获得一个类,并且将该类扩展为适合一个相似然而不相同的目的。
基类:包含共同的属性。父类。
派生类:子类。
(1)protected访问说明符
需要protected的原因:基类和派生类之间形成了共生关系。
C#继承关系的访问说明符的变化和C++的解释一样。
protected说明符允许所有派生类具有对那些用基类中的protected访问说明符定义的属性和方法的访问权限。
(2)继承关系的优点
继承使得可以通过共享基类和派生类之间的属性和方法而编写较少的代码。
(3)C#中构造函数的继承
派生类不能继承构造函数,必须为每一个派生类编写一个构造函数,如果基类没有默认构造函数,那么派生类的构造函数必须用base关键字来调用基类构造函数。
(4)基类不是派生类
派生类使用基类中方法的能力是单向关系。派生类能够调用基类方法,但是基类不能调用派生类方法。
(5)抽象类定义
基类通常用来作为派生类之间共享的所有属性的存储库。
然而基类的描述性可能非常差。以至于实例化基类没有什么意义。为了防止基类实例化,需要使用abstract关键字。
public abstract class clsDecidious{}
利用abstract关键字方式定义类,有两个目的:
第一,他们不能实例化对象。
第二,用户必须定义派生类来捕获包含在基类中的功能。
如果用abstract定义了一个方法,派生类就必须实现该方法。基类中没有该方法的代码。这样抽象类和方法就类似于接口中也不包含代码的接口。然而接口不能包含构造函数。
(类似于C++当中的虚函数)
2、多态
定义:多态意味着可以向一群不同的类发送多条消息,每个类知道如何正确地对该消息做出响应。
(1)virtual关键字
单词virtual用来标识可能在派生类中被重写的方法。换句换说:virtual方法可以用从该类派生的任何类中该方法的不同定义中替换。
比如在基类中关于扫雪的方法:
public virtual string RemoveSnow(){return whichType[buildType]+":No snow removal servicec available.";}
在其基类的派生类中:
public override string RemoveSnow(){return "Apartment:";}
override关键字:override关键字与virtual关键字配合使用。override关键字告诉她,这个方法被他继承自的类中的方法重写了。
通常,派生类重写基类中定义的虚拟方法。
sealed关键字:防止从类中进一步继承。
public sealed clsLastClass{}
继承和多态行为的优点:各个对象知道具体如何相应调用的时间或者方法。及时这些对象采用的是共同的方法名称。
整套系列文章,在本文就宣告结束。
然而C#仍然有非常庞大的功能等待去发掘。之后我会在本栏目继续补充相关C#知识。
与各位程序入门者共勉,向着成为一名技术高超的程序员的梦想不断前进。
- C#成神之路<20> C#多态继承
- C#继承多态
- C#之继承
- C# 之 继承
- C#之继承
- C#之继承
- C#学习之继承
- c#学习之--继承
- C#基础之继承
- C#继承与多态
- C#继承和多态
- C#继承和多态
- C#继承和多态
- C#继承与多态
- 【C#之路】如何使用C#实现单例类的继承
- 【黑马程序员】C#之继承
- C#之继承(转载)
- c#继承之里氏转换规则
- tableviewcell添加多个按钮删除事件
- HTML 属性总结
- 栅格系统
- JAVA用户自定义事件监听完整例子
- Android基础
- C#成神之路<20> C#多态继承
- node
- phpwind < v6 版本命令执行漏洞
- Oracle数据库管理
- php session 过期时间设置
- 关于xcode不同版本打开相同工程问题
- Qt做的俄罗斯方块游戏
- grunt使用方式
- 一些VR延迟优化方法