C#面向对象名词比较

重写(override)与重载(overload)

相似:他们都是重新定义一个方法的实现过程

区别:
重写(override):是指对象之间的某个方法的重新实现,在一个类继承一个类时,当基类中某方法申明为virtual或abstract时,在派生类中使用override关键字重新申明一个方法,注意该方法必须与基类中的参数返回值一样,一个类中对于基类某方法只能重写一次,调用基类还是派生类的实现是通过所定义的对象的类型来决定,和方法的参数无关

重载(overload):指对象中某个方法的重新实现,方法重载不需要关键字,只需要申明方法的参数类型或个数不一样即可,重载不能根据返回类型不同来重载,重载可以重载任意多次,没有限制.调用哪个重载方法只和调用时的参数有关系

================
(抽象)abstract和虚拟(virtual)
相似:在申明方法的时候,都能被重写

区别:

(抽象)abstract:可以申明类也可以申明方法,申明方法时不能和sealed一起申明,所申明的类必须被继承,申明的方法也必须被重写,申明时没有具体实现,实际上它起一个接口的作用

虚拟(virtual):只能申明方法,可以在申明方法的时候写对应的实现

======================
类(class)和结构(struct)
相似:都是对象,就单个对象来说,类能实现的几乎结构都能实现

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

结构:不能继承重写,不能有修饰,实例化使用的是堆中的内存(和普通变量一样),是值赋值
==========================
常数(const )和只读(readonly)

相似:相对于变量,其值基本不变
区别:
常数(const ):其值为硬编码,其值只能在申明时赋值,在类中使用const申明时,const好像隐式静态变量,每个实例不需要保存副本
只读(readonly):其值可以赋值,但只能在构造函数中赋值或申明时指定,申明为readonly的变量,每个类实例中可以有不同的副本

转载于:https://www.cnblogs.com/Lucky2007/archive/2008/05/05/1183054.html

C#面向对象名词比较相关推荐

  1. C#面向对象名词解释(四)

    常数(const )和只读(readonly) 相似:相对于变量,其值基本不变 区别: 常数(const ):其值为硬编码,其值只能在申明时赋值,在类中使用const申明时,const好像隐式静态变量 ...

  2. C#面向对象名词比较(一)

    重写(override)与重载(overload) 相似:他们都是重新定义一个方法的实现过程 区别: 重写(override):是指对象之间的某个方法的重新实现,在一个类继承一个类时,当基类中某方法申 ...

  3. C#面向对象名词比较(三)

    类(class)和结构(struct) 相似:都是对象,就单个对象来说,类能实现的几乎结构都能实现 区别: 类:能被继承重写,可以有修饰申明(abstract,sealed),类实例化时使用的是栈中的 ...

  4. python OOP面向对象笔记

    文章目录 OOP面向对象编程 面向对象名词 类与对象 类的内容(成员) 类的定义 self 类的变量作用域的问题 1.实例变量 调用 类的变量 (此时实例变量还没单独定义/赋值) 2.实例变量 调用 ...

  5. 我的Python成长之路---第六天---Python基础(20)---2016年2月20日(晴)

    一.面向对象基础 面向对象名词解释: 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公 ...

  6. 决战Python之巅(十五)-面向对象(找名词、加属性、连关系)

    面向对象(找名词.加属性.连关系) 知识回顾 引言 面向过程 VS 面向对象 面向过程 面向对象 面向对象初识 类的相关 对象的相关 对象之间的交互 类命名空间与对象.实例的命名空间 初识面向对象小结 ...

  7. 山东大学面向对象编程导论复习提纲(包含各种名词解释)

    各位山大的小伙伴们是不是对即将到来的面向对象考试搞得很烦躁呀~ 是不是对老师发的只有关键词的提纲一脸懵逼呀~ 本提纲是根据那份只有关键词的提纲整理的复习提纲. 提纲中知识点均来自老师的PPT,请放心使 ...

  8. python函数名词解释_python的面向对象程序设计(名词解释及实例)

    类的定义 class Student: #定义类属性(类似于java的静态成员变量) country = "China" #构造函数 def __init__(self,name, ...

  9. 09_Java面向对象_第9天(类、封装)_讲义

    今日内容介绍 1.面向对象思想 2.类与对象的关系 3.局部变量和成员变量的关系 4.封装思想 5.private,this关键字 6.随机点名器 01面向对象和面向过程的思想 A: 面向过程与面向对 ...

最新文章

  1. 数据库字段命名及设计规范
  2. 关于js中cookie的认识
  3. oracle 11g 的em启动不了
  4. python3.8.5怎么用-python3.8 五分钟就可以入门
  5. PON:EPON/GPON/10G PON/XG-PON/NG-PON2—Vecloud微云
  6. SpringSecurity - 基础篇
  7. linuxShell之一 文件读取 循环与分支
  8. Soft Skill
  9. python类的应用_如何剖析python应用程序的类方法?
  10. 目标检测、语义分割性能指标
  11. ExtJs6 为Ext.Img对象添加单机事件
  12. 酷睿i7 7700hq性能怎么样 i77700hq是什么水平
  13. BugkuCTF:宽带泄露;隐写2
  14. -bash: netstat: command not found
  15. B站视频下载工具唧唧down的安装和使用教程
  16. GNU GRUBversion 2.04Minimal BASH-like line editing is supported.For the first word
  17. 装逼第二弹——Laplace变换的前世今生
  18. ora-00604 ora-02429
  19. 计算机网络:02---数据与信号。频率、比特率、波特率、信噪比、衰减
  20. DRM Plus Packer (国内唯一一款可以阻击FairUse4WM的DRM加密器)

热门文章

  1. 30-80k/月!影创科技算法岗招聘,含实习生
  2. 媒智科技--深度学习算法Python后台开发--热招中~
  3. PyTorch | torch.tensor使用方法,如何使用torch.tensor
  4. 什么是嵌入式视觉、行业应用、目前挑战
  5. TensorFlow中的Nan值的陷阱
  6. 深度学习(十五)基于级联卷积神经网络的人脸特征点定位
  7. 用vector实现二维向量
  8. c++从txt中读取数据,数据并不是一行路径(实用)
  9. httppostedfilebase.saveas后文件被占用_文件过多时ls命令为什么会卡住?
  10. mysql run sql files_HeidiSQL_5.1_Sourcecode