1、封装
隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的“读取”和“修改”的访问级别。
一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:
● public:所有对象都可以访问, 所修饰的顶级类的可访问域是它所在的程序和任何引用该程序的程序,因此访问不受限制。
● private:对象本身在对象内部可以访问;
● protected:只有该类对象及其子类对象可以访问;但不可以继承给子类,protected就只能被子类内部所访问(不管这个子类在哪个项目里)
如果在同一程序集里面,不是子类的话,仅仅实例化该类,其中的protected所修饰的成员就不能被访问
● internal:同一个程序集的对象可以访问,所修饰的顶级类的可访问域是定义它的程序。
public不必介绍哪都可以new一下,但是internal必须在自己的项目内使用,
这里有必要向大家介绍项目和程序集,简单点项目包括:控制台应用程序,Windows应用程序,类库(Class Library)等,而程序集叫Assembly(也就是我们创建项目中的AssemblyInfo.cs文件),
一个项目也就是一个程序集,Assembly用处很大,但与我们的专题无关,不做介绍。
介绍上面的目的为了说明,一个项目的internal无法在另一个项目中调用
● protected internal:访问限于当前程序集或派生自包含类的类型。
2、继承
继承有一个很重要的原则,叫里氏替换原则:子类是父类;
如:
麻雀:鸟(麻雀继承鸟类),可以说,麻雀是鸟,但不能说鸟是麻雀。
3、多态
简单来说,多态指同一个实体同时具有多种形式。
重写 是多态的一个重要形式。
父类有一个virtual的方法,则子类可以继承并重写这个方法
不同的基类的同名方法实现了不同的操作,这就是重写,多态的体现。
重载:就是在同一个类,方法名相同,返回值相同,但参数不同即为重载,一个类可以有多个构造函数,参数类型、参数个数成为区别函数主体的条件。