• private,protected,public和internal
  1. private:是完全私有的,只有本类自己能用[好比自己的老婆,只有你自己可以调用,其他谁都不可以]
  2. protected:可被外界看到,但是不能调用,只有本类和子类可以调用(属性和方法都可被子类所继承调用)[好比老爸的钱包,只会自己用或者继承给儿子用,就是不能给别人用].
  3. private与protected共同点:都不可以被外界访问
  4. publlic:对任何类和成员都完全公开[好比公用电话,谁都可以用]
  5. internal:同一应用程序集内部(在vs.net中的一个项目,这里的项目是指单独的项目,而不是整个解决方案)可以访问该类[好比公司电话,只能公司内部人员使用]
  6. protected internal:只能在同意应用程序集内本类和派生类访问[只能公司内部人员以及公司子公司的人可以使用]
  7. public和internal区别:前者的成员可以跨程序集访问,internal不行.但是在同一应用程序集中,两者有相同的效果.
  • sealed,new,virtual,abstract与override
  1. sealed:密封类不会有子类,不能被继承---"断子绝孙"
  2. new:用于显示隐藏从基类继承的成员,当子类方法名跟父类方法名字一样的时候,在使用子类时调用的方法是new关键字新定义出来的方法用的子类的方法,而不是父类的.---"你是你的,我是我的"
  3. virtual:用于修改方法或属性的声明,被称作虚成员.调用虚方法时,将为重写成员检查该对象的运行时类型,将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员---"为子孙后代"
  4. abstract:---"好比上帝,是人们对神的抽象,看似什么都能干,其实什么都干不了"
    1. 可以和类,方法,属性,索引器以及事件一起使用.
    2. 类中声明使用abstract修饰符,指示该类只能是其他类的基类.
    3. 标记为抽象或者包含在抽象类中的成员必须通过从抽象类派生的类来实现
    4. 不能被实例化
    5. 不能用sealed修饰,这表示该类不能呗继承了
    6. 继承抽象类的子类必须实现抽象类的所有抽象成员
    7. 抽象成员只能在抽象类中
    8. 抽象方法声明不提供具体实现,连{}都不写
    9. 抽象方法不能使用static或者virtual修饰符
    10. 静态属性不能用abstract修饰
    11. 派生类中使用override重写基类抽象方法
  5. override:---"一手遮天"
    1. 使用override修饰符来修改方法,属性,索引器,事件.主要提供子类对父类方法的重写,覆盖abstract,virtual两种关键字修饰的成员
    2. new和override的相同点:都可以对基类成员进行隐藏,都可以用base关键字调用基类成员
    3. 区别:用override的基类的方法必须要用virtual或者abstract,而new不必要.
    4. 用基类对象调用基类的virtual方法时,override重写的派生类的方法hi被访问,而new重写的派生类中的方法不会被访问.
  • abstract抽象类和interface接口
  1. abstract特点:
    1. 抽象方法只做声明,而不包括实现没有实现体的虚方法
    2. 抽象类不能被实例化,不能new
    3. 抽象类可以,但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类
    4. 派生类必须覆盖基类的抽象方法.
    5. 抽象类可以派生自另一个抽象类,可以覆盖基类的抽象方法,也可以不覆盖,如果不覆盖,则其派生类必须覆盖他们.
  2. interface特点:
    1. 接口是引用类型
    2. 不能被实例化
    3. 只能包含实现的方法声明
    4. 成员可以包括方法,,属性,索引器和事件

c#基础知识对比(面向对象)的更多相关文章

  1. javascript的基础知识及面向对象和原型属性

    自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...

  2. C#基础知识之面向对象以及面向对象的三大特性

    在C#基础知识之类和结构体中我详细记录了类.类成员.重载.重写.继承等知识总结.这里就记录一下对面向对象和面向对象三大特性的广义理解. 一.理解面向对象 类是面向对象编程的基本单元,面向对象思想其实就 ...

  3. JAVA基础知识之面向对象编程知识汇总

    JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...

  4. [C#基础]基础知识一: 面向对象的基本知识.

    激励自己有时间多看看.!! C#基础共分为七个部分: 一: 面向对象 二: 值类型, 引用类型, 字符串操作 三: 集合文件操作 四: 正则表达式 五: XML操作 六: 委托, 事件 七: 反射 1 ...

  5. C# 篇基础知识3——面向对象编程

    面向过程的结构化编程,例如1972年美国贝尔研究所推出的C语言,这类编程方式重点放在在定函数上,将较大任务分解成若干小任务,每个小任务由函数实现,分而治之的思想,然而随着软件规模的不断扩张,软件的复杂 ...

  6. js与juery基础知识对比(一)---2017-05-06

    用表格做的,想要对比的内容一目了然,红色部分为重点   js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...

  7. js与jquery基础知识对比(一)---2017-05-06

    用表格做的,想要对比的内容一目了然,红色部分为重点   js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...

  8. 你不得不知的Java基础知识

    本篇博客主要记录Java中面向对象的概念和Java语法的基础知识. 面向对象 什么是面向对象 面向对象是一种优秀的软件设计思想,是相对于面向过程.面向切面等设计思想的一种软件设计理念.它的核心思想是运 ...

  9. Python3 与 C# 面向对象之~继承与多态 Python3 与 C# 面向对象之~封装 Python3 与 NetCore 基础语法对比(Function专栏) [C#]C#时间日期操作 [C#]C#中字符串的操作 [ASP.NET]NTKO插件使用常见问题 我对C#的认知。

    Python3 与 C# 面向对象之-继承与多态   文章汇总:https://www.cnblogs.com/dotnetcrazy/p/9160514.html 目录: 2.继承 ¶ 2.1.单继 ...

随机推荐

  1. Sublime Text 3 安装插件管理 Package Control

    自动安装: 1.通过快捷键 ctrl+` 或者 View > Show Console 菜单打开控制台 2.粘贴对应版本的代码后回车安装 适用于 Sublime Text 3: import   ...

  2. Codeforces Round #325 (Div. 2) C. Gennady the Dentist 暴力

    C. Gennady the Dentist Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586 ...

  3. [AngularJS] Best Practise - Resolve promises in router, defer controllers

    See more:http://toddmotto.com/opinionated-angular-js-styleguide-for-teams/ /** * Created by Answer12 ...

  4. careercup-C和C++ 13.2

    13.2 浅析哈希表和STL map.对比哈希表和STL map.哈希表是怎么实现的?如果输入数据规模不大, 我们可以使用什么数据结构来代替哈希表. 解答 对比哈希表和STL map 在哈希表中,实值 ...

  5. VBScript

    VBScript then PrintWMIErrorthenExit Err.Description, Err.Number else ifnot boolCathiMode then wscrip ...

  6. dos常用文件操作命令

    1.DIR 含义: 显示指定目录下的文件和子目录列表 类型: 内部命令 格式: DIR[drive:][path][filename][/p][/w][/A[[:]attributes]][/O[[: ...

  7. 《编写高质量代码—改善java程序的151个建议》知识整理一

    1.用偶判断,不用奇判断 案例:在代码i%2==1?"奇数":"偶数" (java中的求余算法相当于:divided-divided/divisor*divis ...

  8. c++20道面试题

    摘自传智播客论坛 问1:请用简单的语言告诉我C++ 是什么?答:C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛.C++支持多种编程范式 --面向对象编程.泛型编程和过程化编程. 其编程领 ...

  9. Fortify 4.0 帮助文档下载

    Fortify 4.0 帮助文档下载 http://pan.baidu.com/s/1hqzbF8o

  10. Find security bugs学习笔记V1.0

    Find security bugs学习笔记V1.0 http://www.docin.com/p-779309481.html