面向对象是向现实生活的自然延伸 是一种万物皆对象的编程思想 。现实生活中任何物体都可以归为一类事物,而每个个体都是一类事物的实例。面向对象的编程思想是以对象为中心 ,以消息为驱动 所以程序=对象+消息 这里的消息就是通知对象执行相应的行为
面向对象有三大特性 封装 继承 和多态
封装就是讲一类事物的属性和行为抽象成一个类 使其属性私有化 行为公开化 ,提高数据的隐秘向的同时 是代码模块化。这样做是的代码服用性更高。
继承则是进一步将一类事物共有的属性和行为抽象成一个父类 而每一个子类是一个特殊的父类 有父类的行为和属性 也有自己特有的行为和属性 这样做扩展类已存在的代码块 进一步提高了 代码的复用性。
如果说封装和继承是为了使代码重用 那么多态则是为了实现接口重用 。多态的一大作用就是为了解耦 为了解除父子类继承的耦合。如果说继承中的子类的关系是IS-A的关系 那么接口实现类之间的关系是HAS-A。简单来说多态就是父类的应用指向子类的对象。很多设计模式都是基于面向对象的多态设计的。