C#访问修饰符(public,private,protected,internal,sealed,abstract)
为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符.
修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及protectde internal(只有本程序内或者继承于该类的类型可以访问).
可以使用修饰符的对象:namespace(命名空间),class(类),struct(结构),enum(枚举),interface(接口),delegate(委托),function(函数),变量
1.public:
访问不受限制.是权限最多的一个修饰符.namespace和enum成员,interface的成员隐式的具有public修饰符.不能再显式添加其修饰符.
2.private:
只有同一个class或struct中能被访问.class或truct中的成员如果不加修饰符则默认是private
3.protected:
访问仅限于当前class或继承的class.比如在一个class Student中声明一个函数protected int Add(){ };在则只能在Student中用Add,或者在继承于Student的子类中用base.Add()来用num.但实例化class得到的对象不能用Add.比如Student s = new Student(); s.Add();这样是错误的.(注意:声明class,struct前是不能加protected修饰的.只能用public 或internal)
4.internal:
仅限于当前程序集.即同一个project中.
class或struct,interface如果不加修饰符则默认是internal.但也可以显示声明为internal或public(注:如果class,struct是在一个class中声明的也可以protected,private修饰.也就是说一个class中还可以嵌套的声明一个class)
5.protected internal:
同一程序集或继承的子类可访问.其实相当于是protected 和internal两个权限累加到一起了.(注意,由于struct是不能继承的,所以它的成员也不能由protected或protected internal修饰.
注意:派生的class可访问性不能比基类更高.也就是说如果基类被internal修饰则子类只能用internal修饰.如果基类都public修饰子类可用internal也可用public.
除了权限修饰符外还有四个修饰符sealed,abstract,virtual,partial(这四个修饰符可以和上面五个权限修饰符一起用.写在权限修饰符前面或后面都行)
sealed只能用来修饰class,表示class不能被继承.
abstract可用来修饰class和class中的成员.但必须是class被abstract修饰了,成员才能被abstract修饰.它表示此class是抽象类,不能实例化,必须被继承并重写抽象函数
virtual只能用来修饰class中的函数,表明是虚函数,虚函数除了可以被重写外其他时候跟一般函数一样.虚函数重不重写是可选的,不是必须的
partial
通过使用关键字partial可以把一个class分开来写,可以在一个project中的不同文件中.在一个class特别大,由几个人合作写时这功能特别有用.
C#访问修饰符(public,private,protected,internal,sealed,abstract)的更多相关文章
- 访问修饰符(public,private,protected,internal,sealed,abstract)
为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符. 修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及 ...
- 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)
访问修饰符(或者叫访问控制符)是面向对象语言的特性之一,用于对类.类成员函数.类成员变量进行访问控制.同时,访问控制符也是语法保留关键字,用于封装组件. Public, Private, Protec ...
- 访问修饰符public,private,protected,以及不写(默认)时的区别?
private: 1.在当前类开发中,main方法之外可以直接借助名字使用,当前类的main方法中可以使用对象打点的方式直接使用成员. 2.在当前类之外,使用对象(或是类名,针对静态的)打点调用都是被 ...
- 访问修饰符 public,private,protected,以及不写(默认) 时的区别?
修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protecte d √ √ √ × default √ √ × × private √ × × × 类的成员不写访问修饰时默认为 ...
- 访问修饰符 public private protected default
- 12、类成员访问修饰符public/private/producted/readonly
1.private 类的私有成员 private 类的私有成员,只能在内部访问,在外部访问不到,无法被继承,我们可以将不需要被外部修改的定义为私有的 私有成员,只能在内部访问,在外部访问不到 priv ...
- 关于Java的权限修饰符(public,private,protected,默认friendly)
以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚. 现在总结如下: 一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限 Java访问权限修饰符包含四个:p ...
- 2018/03/10 每日一学PHP 之 修饰符 public/private/protected
对于面向对象 修饰符的使用是我们最常用,也是很容易忽略的小细节. 对于编程来说,把握好每一个小细节,就能构造出漂亮,优雅的程序. public 使用最多的修饰符,公共方法,允许所有访问,就像一个公交车 ...
- Java修饰符 public、protected、default、private
2.访问修饰符public,private,protected,以及不写(默认)时的区别?答: 修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protected √ √ √ × ...
随机推荐
- Linux服务器删除乱码文件和文件夹的方法
Linux服务器删除乱码文件和文件夹的方法 首页进入乱码文件所在文件夹由于php大势所趋,所以接触Linux服务器的机会越来越多.不同于Windows服务器,Linux服务器只支持数字.英文等字符,对 ...
- 图像映射<map>、<area>
1.<map>定义图像映射,图像映射(image-map)指带有可单击区域的一幅图像. 2.<area>定义图像映射中的区域,area元素永远嵌套在map元素内部,area元素 ...
- mysql 我们眼中的int(10)
自我总结,欢迎拍砖! 目的:定义int(3)和int(10)真的有区别吗? 论证: 1.创建student,student2表 分别定义一个student,student2表 create table ...
- WebService学习------小实例开发(号码归属地查询)
1.WebService简介: WebService是一种跨平台,跨语言的,可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.通过SOAP在Web上提 ...
- Jmeter Smock Test规范设计
Jmeter Smock Test规范设计 一.Smock Test物料 1.开发运行工具Jmeter,(下载地址: http://jmeter.apache.org/download_jmeter. ...
- 浅谈PHP异常处理
1.PHP中异常的独特性 PHP中的异常的独特性,即PHP中的异常不同于主流语言C++.java中的异常.在Java中,异常是唯一的错误报告方式,而在PHP中却不是这样,而是把所有不正常的情况都视作了 ...
- 利用 secureCRT 直接上传下载文件 (sz,rz)
在window下向linux传送文件的方法. 首先在window中安装SecureCRT,然后在快速连接中建立一个到linux的连接,当然,你要先知道你的系统的ip,在终端中键入ifconfig可以查 ...
- spring jdbc踩坑日记,new JdbcTemplate 为null导致UserDao一直为null
private DataSource datasource; private JdbcTemplate jdbcTemplateObject; //设置注入 public void setdataso ...
- Python基础篇(一)
首先需要从Python的官网下载python的安装程序,下载地址为:www.python.org/downloads.最新的版本为3.4.1,下载和操作系统匹配的安装程序并安装即可. 安装好了后,在开 ...
- BZOJ 1192: [HNOI2006]鬼谷子的钱袋 [娱乐]
题意: n个数分组,使得小于n的每个数都能表示出来,最少几组 就是“最优集合”的超级弱化版.....每次+=now+1 然后一个貌似科学的方法是n二进制拆分 #include <iostream ...