首页 > 开发 > 综合 > 正文

C#面向对象名词比较(转ttyp 的文章)

2020-02-03 13:44:51
字体:
来源:转载
供稿:网友
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  • 重写(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
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表