C# 面向对象
面向对象:
面向对象方法是软件工程、程序设计的主要方向,也是最有效、最实用和最流行的软件开发方法之一。
c#是完全面想对象(oop)的程序设计语言,具有面向对象程序设计方法的所有特性。
面向对象方法的基本思想就是从所要解决的问题本身出发,尽可能运用自然的思维方式(分析、抽象、分类、继承),以现实世界中的事物为中心思考问题、认识问题,并根据这些事务的本质特征,把他们抽象表示为系统中的对象,作为系统的基本构成单位。
面向对象的最基本的特征是抽象性、封装性、继承性、多态性。
对象(object):
客观世界中任何事物都可以看成一个对象,汽车、房屋、狗都可以看成一个对象。
任何对象都应当具有属性(attribute)和行为(behavior)两个要素。
对象 = 属性 + 行为(方法、操作)
类(class):
类表示具有相同属性和行为的一组对象的集合。
c#程序的源代码必须放到类中,一个程序至少包括一个类。
类是抽象的,不占用内存,而对象是具体的,占用存储空间
抽象(abstraction):
抽象是处理事务复杂性的方法,只关注与当前目标有关的方面,而忽略与当前目标无关的方面。
int是对所有整数的抽象,double是对所有双精度浮点型数的抽象。
封装(encapsulation):
将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰。
将对象中的某些部分对外隐藏,即隐藏内部细节,只留下少量接口,以变与外界联系,接收外界联系。
一台电视机就是一个封装体,从用户的角度只需要关注开关按钮,音量开光等,不需要关心其内部构造
继承
如果在软件开发中已建立了一个名为a的类,又想建立一个名为b的类,b与a内容基本相同,b在a的基础上增加了一些新的属性和行为。显然不必再从头设计一个新类,只需在a类的基础上增加一些新的内容,b拥有a的全部属性与方法,称作b类对a类的继承。a类称为基类或父类,b类称为派生类或子类。
继承机制的优势在于降低了软件开发的复杂性和费用,使软件系统易于扩充,大大缩短了软件开发周期,对于大型软件的开发具有重要的意义。
多态(polymorphism):
在基类中定义的属性或方法被派生类继承后,可以具有不同的数据类型或表现出不同的行为。