这段时间学习《大话设计模式》,其中的每个设计模式都涉及到C#语言中面向对象的知识,顿悟,必须有良好的C#功底,进行《大话设计模式》才能达到事半功倍的效果。即刻乎,小小的分享一下我对C#知识的理解。
_________________________理解有限,错误不足处请指点。
C#语言中面向对象的三大特性:封装、继承、多态。
封装:就是把实现的细节包装起来,这样很复杂的逻辑经过包装之后用户使用就很方便,用户不需要了解里面是如何实现的,只要传入所需要的参数就可以得到想要的结果,其实和黑盒测试差不多。通过封装我们可以把现实中的万事万物变成脑中的一个自定义类,实例化,衍生出一个活生生的对象,让各个对象有自己的属性、方法来表达自己的心思。
继承:代表一种“is-a”的关系,如果两个对象可以描述为“B是A”则表明B可以继承A。
1.c#只允许单继承 2.c#的继承是可以传递的 3.派生类扩展它的直接基类,即派生类可以添加新的成员,但不能删除从基类继承的成员 4.构造函数和析构函数不能被继承 5.派生类可以隐藏基类的成员,如果在派生类中已声明与基类同名的新成员时,基类的该成员在派生类中就不能被访问到。
多态: 有一种智能洗衣机可以根据所放入的衣服的类型和肮脏程序来自动确定洗衣时间和漂洗次数。洗衣机就是一个具有多态的对象,它根据放入不同的衣服来设定不同的漂洗时间(同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。)
重载
方法名必须相同
参数列表必须不同
返回值类型可以不同
覆写
子类中为满足自己的需要来重复定义某个方法的不同实现
通过使用Overrid关键字来实现覆写
只有虚方法和抽象方法才能覆写
相同的方法名
相同的参数列表
相同的返回值类型
类与接口的区别在于,类不但有描绘,还实现了部分细节。而特殊的抽象类完全带抽象方法,就和接口完成的同样功能
接口:只有方法声明,没有具体的代码实现(更加抽象类)
派生类实现接口
一个类可以实现多个接口,多重继承
C#不允许多重类继承
但C#允许多重接口实现
C#之美……美哉美哉……
这篇博客封存在 OneNote 笔记中良久,外加自己的理解发表出