none or internal     类只能在当前的工程中访问

Public                    类可以在任何地方访问

abstract or internal abstract   类可以在当前的工程中访问,不能实例化,只能继承

Public abstract     类可以在任何地方访问,不能实例化,只能继承

sealed or internal sealed    类只能在当前的工程中访问,只能实例化,不能继承

Public sealed     类可以在任何地方访问,只能实例化,不能继承

1、用于关键字class的修饰符

1)internal 默认修饰符,指定类为内部的,只有当前工程中的代码才能访问它

2)public 指定类为公共的,其它工程中的代码也可以访问它

3)abstract 指定类为抽象的,不能实例化,只能继承,可以有抽象成员

4)sealed 密封的,不能继承

其中,internal和public是一对互斥关系,abstract和sealed是一对互斥关系,两对之间可以互相搭配使用。

默认类定义如下:

class A{}即相当于internal class A{},internal通常是省略的。

 

2、用于关键字interface的修饰符

1)public和private 这对访问修饰符和关键字class的定义是一样的,由于接口的公共特性通常使用public

2)abstract和sealed 这对修饰符不能在接口中使用,因为它们对接口毫无意义

 

当定义派生类时,如果同时有基类和接口,那么先写基类再写接口,用逗号分开,只能继承一个基类但可以有多个接口,如:

class DerivedClass:BaseClass,IInterface1,IInterface2

{}

接口定义和继承如下:

public interface IMyInterface:IInterface1,IInterface2

{}

 

3 、用于类成员(包括字段、属性、方法)的修饰符

1)public--成员可以由任何代码访问

2)private--成员只能由本类中的代码访问(默认值)

3)internal--成员只能由定义它的工程(装配件)内部的代码访问

4)protected--成员只能由类或派生类中的代码访问

最后两个关键字可以合并使用,即protected internal,只能由工程(装配件)中类和派生类的代码访问。此外与以上关键字并行的还有static,表示类的静态成员,而不是类的实例成员。字段还可以定义为realonly,只能在定义时或构造函数中赋值并赋值后不可更改。

 

4、类方法还有另外的关键字定义

1)virtual--方法可以重写

2)abstract--方法必须重写(只用于抽象类中,如果类方法定义了abstract则class也必须追加abstract)

3)override--方法重载了一个基类方法(如果方法被重载则必须使用该关键字)

4)extern--方法定义在其他地方

另:派生类的类方法还可以使用new来隐藏基类方法;通过this指向当前类实例引用,通过base关键字指向基类实例引用。

最新文章

  1. javascript的垃圾收集机制
  2. php变量判断为空的几种方法
  3. 从Trie谈到AC自动机
  4. JS和CSS的多浏览器兼容(3)
  5. Ajax风格的一款网页Loading效果
  6. wireshark tcp 协议分析 z
  7. wikioi 1514 and ZJOI2006 书架
  8. java保留两位小数的方法
  9. PHP访问连接MYSQL数据库
  10. Git/GitHub SSH配置
  11. GDAL C#版本 "安全透明方法"问题解决方案
  12. cocos2d-js(二)cocos2d-js的基本语法与类的简介
  13. spring的DI.IoC是什么
  14. 实战经验丨PHP反序列化漏洞总结
  15. Java并发编程的艺术· 笔记(1)
  16. Vue语法学习第四课(1)——组件简单示例
  17. 使用delimiter //,解决mysql end报错问题
  18. HTTP状态码以及其含义大全
  19. npm install出现"Unexpected end of JSON input while parsing near"
  20. UVA.12230.Crossing Rivers(期望)

热门文章

  1. 彩色点云生成mesh的纹理
  2. 二、Jmter查看结果数只能显示有限的数据,查看全部数据
  3. 【linux】cp 批量复制文件
  4. C# .Net动态调用webService实现思路及代码
  5. 【Struts2】工作流程
  6. javascript 访问 webservice
  7. MACBOOK蓝牙连接丢失恢复
  8. 15.永恒之蓝exp----
  9. 虚拟机上首次安装Ubuntu后 root密码设置
  10. mysql(5.6及以下)解析json