面向对象三大特性
封装
所谓的封装也就是把客观的事物封装成抽象的类。
隐藏了类内部的具体实现细节,对外则提供统一的访问接口来操作内部数据成员。这样实现的好处是实现了UI的分离,程序员不需要知道类内部实现,只按照协定对类进行控制即可。同时,对于类内部来说,封装保证了类内部成员的安全性可可靠性。
继承
继承就是面向对象中类与类之间的一种关系。继承的类成为子类、派生类,被继承的类成为父类、基类或超类。通过继承,使得子类具有父类的属性和方法,同时子类也可以通过加入新的属性和方法或者修改父类的属性和方法建立新的类层次。
继承机制体现了面向对象技术中的复用性、扩展性和安全性。为面向对象软件开发与模块化软件架构提供基本的技术基础。
接口:
接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:在C#中不能包含任何静态成员。一个类可以实现多个接口,当一个类实现某个接口时,它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中继承的方法。
在设计接口时,“接口不变” 是应该考虑的重要因素。所以,在由接口增加扩展时,应该增加新的接口,而不能更改现有接口。
尽量将接口设计成单一的功能模块,以.NET Freamwork为例,IDisposable/IComparable/IEnumerable等都只包含一个公共方法。
抽象类:
抽象类即可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键字,也不能被密封。如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类。
接口与抽象类:
抽象类适合于有族层概念的类间的关系,而接口最适合为不同的类提供功能。(接口是一组行为规范;抽象类是一个不完全的类,着重种族的概念)
接口着重于CAN-DO关系类型,而抽象类则偏重于IS-A关系类型。
接口多定义类的行为;抽象类多定义对象的属性;
接口支持多继承;抽象类不支持多继承;注意:严格意义上来说接口继承类应该成为类实现接口。
接口只能定义抽象规则;抽象类即可以定义规则,还可以提供已实现的成员。
多态
多态是指同一实体同时具有多种形式。是允许将父类对象设置成为一个或者多个他的子对象相等的技术。
简单的说就是允许子类类型的指针赋值给父类类型的指针。
实现多态的方式:覆盖(重写),重载。
覆盖,是指子类重新定义父类的虚方法。重载,是指允许存在多个同名方法,而这些方法的参数不同。
多态的作用是什么呢?我们知道封装可以隐藏实现的细节,使得代码模块化;继承可以扩展已存在的代码模块;他们的目的都是为了代码的重用。而多态则是为了实现另一个目的--接口重用!多态的作用就是为了类在继承和派生的时候,保证在使用“家谱”中任一类的实例的某一属性时的正确调用。

浙公网安备 33010602011771号