本篇主要介绍面向对象的编程思想
什么叫做对象?
在现实中,我们所有能看到的一切都可以被称为对象,包括我,也包括正在看文章的你
而面向对象就是将现实中的事物,通过属性与行为描述给计算机
什么叫做过程?
在现实中,我们所做的一切都可以细分为过程,包括该怎么去上班,去哪里上班
而面向过程就是将现实中实现目标的步骤,通过函数,描述给计算机
类或结构可以指定自己的每个成员对外部代码的可访问性
可以隐藏不得在类或程序集外部使用的方法和变量,以限制编码错误或恶意攻击发生的可能性。
继承是面向对象的编程的三个主要特征之一。
通过继承,可以创建新类,以便重用、扩展和修改在其他类中定义的行为。
其成员被继承的类称为“基类”,继承这些成员的类称为“派生类”。
派生类只能有一个直接基类。
但是,继承是可传递的。
在运行时,在方法参数和集合或数组等位置,派生类的对象可以作为基类的对象处理。 在此多态性下,该对象的声明类型不再与运行时类型相同。
基类可以定义并实现虚方法,派生类可以重写这些方法,即派生类提供自己的定义和实现。
在运行时,客户端代码调用该方法,CLR 查找对象的运行时类型,并调用虚方法的重写方法。
你可以在源代码中调用基类的方法,执行该方法的派生类版本。
一个类的功能要单一
可以增加功能,但不可修改功能
(子类可以扩展父类的功能,但不能改变父类原有的功能)
设计时应该用多个接口而非使用一个通用接口
(高层模块不应该使用具体的底层模块)