一、基本概念
1、private:私有的。只能在本类中使用
2、public:公共的。哪里都可以用
3、protected:受保护的。子孙后代可以用
4、Internal:内部的。只能在项目中用
5、Abstract:抽象的。可以修饰类(继承该类必须实现其中的抽象方法,本身不能被实例化),可以修饰方法(无方法体)
6、Sealed:密封的。该类不能被继承
7、Static:静态的。修饰类时(因为该类不能被实例化所以其中所有的字段和方法都必须是静态的),另外修饰构造函数(构造函数前不能有修饰符,还不能带参数,因为这些都是微软用的,我们普通人不能用)
8、Virtual:虚拟的。用来修饰方法,方法必须带方法体,子类中可以重写该方法
9、Override:重写的意思
10、Readonly:只读的。用来修饰字段,说明这个字段不能被修改
11、Const:常量值。被修饰的字段是一个定值,是只读的。通常等价于static readonly
二、区别
1、private和protected的区别?
前面是自己的事情,后面的是可以影响子孙后代,好厉害对吧
2、构造函数和静态构造函数的区别?
麻烦,静态构造函数是微软自身去调用,所以不能在前面加修饰符,也不能传参,因为微软不知道你要传什么,静态即是全局的,不能被实例化,而非静态的可以被实例化。
3、Abstract和virtual的区别?
1、Abstract可以用来修饰类,virtual不可以,只能修饰方法或者属性
2、Abstract修饰的类表示抽象类,其中不能有构造函数,所以不能被实例化,类中的抽象方法必须是公共的,且没有方法体,而virtual修饰的方法是有方法体,通常这类方法是要被重写的,抽象类通常用来表示某一种模糊的东西,比如有很多品牌的车,福特,林肯、现代,但是他们都是车,所以抽象类就是车,里面可以定义一些共有字段,比如车长,车重,或者定义些公共方法,会动,那么继承此抽象类后,就实现具体的车,还是考察多态
扩展:多态