zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    SAP UI5应用和Hybris Commerce的国际化(internationalization)支持
    PHP获取目录下面所有文件和文件夹
    php利用smtp类轻松的发送电子邮件
    Redis和Memcached的一些区别
    redis命令大全参考手册
    redis类与用法
    公共类属性使用
    php 非对称加密解密类
    RSA密钥生成与使用
    Centos下安装Lamp和vsftpd、redis
  • 原文地址:https://www.cnblogs.com/meetweb/p/123271.html
Copyright © 2011-2022 走看看