C#C#面向对象名词相比较(转ttyp 的稿子)

重写(override)与重载(overload)

一般:他们都是重新定义一个措施的落实过程

区别:
重写(override):是指目标期间的某个方法的双重实现,在一个类继承一个类时,当基类中某方法发明为virtual或abstract时,在派生类中接纳override关键字重新声明一个方法,注意该办法必须与基类中的参数重返值一样,一个类中对于基类某艺术只可以重写两遍,调用基类仍然派生类的落实是由此所定义的目标的体系来决定,和模式的参数无关

重载(overload):指目的中某个方法的重新实现,方法重载不需要着重字,只需要表明方法的参数类型或个数不同等即可,重载无法依据重临类型不同来重载,重载可以重载任意多次,没有限制.调用哪些重载方法只和调用时的参数有涉嫌

(抽象)abstract和虚拟(virtual)
一般:在表明方法的时候,都能被重写

区别:

(抽象)abstract:可以阐明类也足以声明方法,注明方法时不可能和sealed一起注脚,所表明的类必须被延续,评释的点子也不可能不被重写,讲明时尚未切实可行实现,实际上它起一个接口的效益

编造(virtual):只可以阐明方法,可以在声明方法的时候写对应的实现

类(class)和结构(struct) 一般:都是指标,就单个对象的话,类能促成的几乎结构都能实现

区别:
类:能被持续重写,可以有修饰申明(abstract,sealed),类实例化时行使的是栈中的内存(相对堆慢一点),类在赋值时,只是引用赋值(赋值后,改变被赋值对象的特性,其他跟着改)

布局:不可以延续重写,无法有修饰,实例化使用的是堆中的内存(和平日变量一样),是值赋值

**常数(const )和只读(readonly)

**相似:相对于变量,其值基本不变
区别:
常数(const
):其值为硬编码,其值只好在表达时赋值,在类中接纳const表明时,const好像隐式静态变量,每个实例不需要保留副本
只读(readonly):其值可以赋值,但不得不在构造函数中赋值或表达时指定,讲明为readonly的变量,每个类实例中得以有例外的副本

以上在《C#尖端编程》中有介绍,下载见http://bbs.wrclub.net/down/Cshappdf.rar

相关文章