c#基础知识对比(面向对象)
- private,protected,public和internal
- private:是完全私有的,只有本类自己能用[好比自己的老婆,只有你自己可以调用,其他谁都不可以]
- protected:可被外界看到,但是不能调用,只有本类和子类可以调用(属性和方法都可被子类所继承调用)[好比老爸的钱包,只会自己用或者继承给儿子用,就是不能给别人用].
- private与protected共同点:都不可以被外界访问
- publlic:对任何类和成员都完全公开[好比公用电话,谁都可以用]
- internal:同一应用程序集内部(在vs.net中的一个项目,这里的项目是指单独的项目,而不是整个解决方案)可以访问该类[好比公司电话,只能公司内部人员使用]
- protected internal:只能在同意应用程序集内本类和派生类访问[只能公司内部人员以及公司子公司的人可以使用]
- public和internal区别:前者的成员可以跨程序集访问,internal不行.但是在同一应用程序集中,两者有相同的效果.
- sealed,new,virtual,abstract与override
- sealed:密封类不会有子类,不能被继承---"断子绝孙"
- new:用于显示隐藏从基类继承的成员,当子类方法名跟父类方法名字一样的时候,在使用子类时调用的方法是new关键字新定义出来的方法用的子类的方法,而不是父类的.---"你是你的,我是我的"
- virtual:用于修改方法或属性的声明,被称作虚成员.调用虚方法时,将为重写成员检查该对象的运行时类型,将调用大部分派生类中的该重写成员,如果没有派生类重写该成员,则它可能是原始成员---"为子孙后代"
- abstract:---"好比上帝,是人们对神的抽象,看似什么都能干,其实什么都干不了"
- 可以和类,方法,属性,索引器以及事件一起使用.
- 类中声明使用abstract修饰符,指示该类只能是其他类的基类.
- 标记为抽象或者包含在抽象类中的成员必须通过从抽象类派生的类来实现
- 不能被实例化
- 不能用sealed修饰,这表示该类不能呗继承了
- 继承抽象类的子类必须实现抽象类的所有抽象成员
- 抽象成员只能在抽象类中
- 抽象方法声明不提供具体实现,连{}都不写
- 抽象方法不能使用static或者virtual修饰符
- 静态属性不能用abstract修饰
- 派生类中使用override重写基类抽象方法
- override:---"一手遮天"
- 使用override修饰符来修改方法,属性,索引器,事件.主要提供子类对父类方法的重写,覆盖abstract,virtual两种关键字修饰的成员
- new和override的相同点:都可以对基类成员进行隐藏,都可以用base关键字调用基类成员
- 区别:用override的基类的方法必须要用virtual或者abstract,而new不必要.
- 用基类对象调用基类的virtual方法时,override重写的派生类的方法hi被访问,而new重写的派生类中的方法不会被访问.
- abstract抽象类和interface接口
- abstract特点:
- 抽象方法只做声明,而不包括实现没有实现体的虚方法
- 抽象类不能被实例化,不能new
- 抽象类可以,但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类
- 派生类必须覆盖基类的抽象方法.
- 抽象类可以派生自另一个抽象类,可以覆盖基类的抽象方法,也可以不覆盖,如果不覆盖,则其派生类必须覆盖他们.
- interface特点:
- 接口是引用类型
- 不能被实例化
- 只能包含实现的方法声明
- 成员可以包括方法,,属性,索引器和事件
c#基础知识对比(面向对象)的更多相关文章
- javascript的基础知识及面向对象和原型属性
自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...
- C#基础知识之面向对象以及面向对象的三大特性
在C#基础知识之类和结构体中我详细记录了类.类成员.重载.重写.继承等知识总结.这里就记录一下对面向对象和面向对象三大特性的广义理解. 一.理解面向对象 类是面向对象编程的基本单元,面向对象思想其实就 ...
- JAVA基础知识之面向对象编程知识汇总
JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...
- [C#基础]基础知识一: 面向对象的基本知识.
激励自己有时间多看看.!! C#基础共分为七个部分: 一: 面向对象 二: 值类型, 引用类型, 字符串操作 三: 集合文件操作 四: 正则表达式 五: XML操作 六: 委托, 事件 七: 反射 1 ...
- C# 篇基础知识3——面向对象编程
面向过程的结构化编程,例如1972年美国贝尔研究所推出的C语言,这类编程方式重点放在在定函数上,将较大任务分解成若干小任务,每个小任务由函数实现,分而治之的思想,然而随着软件规模的不断扩张,软件的复杂 ...
- js与juery基础知识对比(一)---2017-05-06
用表格做的,想要对比的内容一目了然,红色部分为重点 js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...
- js与jquery基础知识对比(一)---2017-05-06
用表格做的,想要对比的内容一目了然,红色部分为重点 js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...
- 你不得不知的Java基础知识
本篇博客主要记录Java中面向对象的概念和Java语法的基础知识. 面向对象 什么是面向对象 面向对象是一种优秀的软件设计思想,是相对于面向过程.面向切面等设计思想的一种软件设计理念.它的核心思想是运 ...
- 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.单继 ...
随机推荐
- delphi 窗体透明
TransparentColor:=true; TransparentColorValue:=clFuchsia; Color:= TransparentColorValue; ...
- POJ 3104 Drying 二分
http://poj.org/problem?id=3104 题目大意: 有n件衣服,每件有ai的水,自然风干每分钟少1,而烘干每分钟少k.求所有弄干的最短时间. 思路: 注意烘干时候没有自然风干. ...
- ProgressSeekBar
ProgressSeekBar.rar
- 跟我学solr---吐槽一下,我的文章被抄袭啦
今天闲来无事,就在在百度上搜了下面"跟我学solr",看看这几周来自己的努力成果怎么样,不搜还好,搜了就图学了.被原封不动地抄袭了!并且抄袭的文章还在百度排名第一,我自己的却被排到 ...
- 安装完zend server后,无法访问http://localhost:10081/ZendServer/的解决办法
安装完ZendServer后,默认会设置http://localhost:10081/ZendServer/为ZendServer的后台管理页面, 但对于ZendServer5.0.2(其它版本未知) ...
- Github 上的 iOS 开源项目
在 Github 上 Star 太多了,有时候很难找到自己想要的开源库,所以在此记录下来.便于自己开发使用,也顺便分享给大家. 动画 awesome-ios-animation收集了iOS平台下比较主 ...
- Android4.4 + WebAPI 实现拍照上传
网上有很多关于拍照上传的实现方法,如果用新版本android去运行有可能会发现根本实现不了.主要原因是android从4.4版本开始通过intent.ACTION_GET_CONTENT打开选择器后, ...
- Android(java)学习笔记129:Tab标签的使用
1.案例1---TabProject (1)首先是main.xml文件: <?xml version="1.0" encoding="utf-8"?> ...
- PHP算法--将数字金额转换成大写金额
最近在看一些PHP算法题,遇到一个将数字金额转换成大写金额的小算法题,这里贴出自己的一个例子. 注:这个小算法适用于10万以内的金额. <?php //$num = 12345.67; func ...
- 关于SWT/JFace中其他常用的事件
1.addSelectionListener:这个监听器最常用. 这个addSelectionListener是一个方法,addSelectionListener(SelectionListener ...