c# 中的封装、继承、多态详解
面向对象有封装、继承、多态这三个特性,面向对象编程按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成任务。这种编程方法提供了非常强大的多样性,大大增加了代码的重用机会,增加了程序开发的速度,将具备独立性特制的程序代码包装起来,修改部分程序代码时不至于会影响到程序的其他部分。
1.封装
每个对象都包含它进行操作所需要的所有信息,封装只公开代码单元的对外接口,而隐藏其具体实现,尽量不对外公开代码。使用封装有很多好处,从设计角度来讲,封装可以对外屏蔽一些重要的信息,比如使用电脑的人只要知道怎么使用电脑就可以,不用知道这些功能具体是怎么实现的;从安全性考虑,封装使对代码的修改更加安全和容易,封装明确的指出了哪些属性和方法是外部可以访问的,这样当需要调整这个类的代码时,只要保证公有属性不变,公有方法的参数和返回值类型不变,那么就可以尽情的修改这个类,而不会影响到程序的其他部分;封装还避免了命名冲突的问题,封装有隔离作用,不同的类中可以有相同名称的方法和属性,但不会混淆,也可以减少耦合。
2.继承
继承可以使用现有类的所有功能,并在无须重新编写原来的类的情况下,对这些功能进行扩展。使用继承而产生的类被称为派生类或子类,而被继承的类则称为基类或超类或父类。继承表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数,其子类是对父类的扩展;接口继承是表示一个类型只继承了函数的签名,没有继承任何实现代码。继承划分了类的层次性,也可以说继承是对类的分组,父类代表的是抽象的类,更常用的类,而子类代表的是更为具体,更为细化的类;继承是实现代码重用、扩展的重要手段。所谓抽象的类是指与具体的事项相联系,但只是表达整体而不是具体概念的类,比如说形状包含正方形、长方形、圆等,这时候形状是一个抽象的概念,相当于一个父类,而正方形、长方形、圆是具体的形状,相当于是子类。
3.多态
多态是指程序中同名的不同方法共存的情况,主要通过子类对父类方法的覆盖来实现多态。这样,不同类的对象可以用同名的方法完成特定的功能,但具体的实现方法却可以不同。比如说形状包含正方形、长方形、圆等,每个形状都有面积和周长,但是不同的形状计算面积和周长的方法都不同。