关闭

C#的Class的几个修饰符

171人阅读 评论(0) 收藏 举报
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关键字指向基类实例引用。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:45209次
    • 积分:771
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:18篇
    • 译文:0篇
    • 评论:8条