我自己理解的面向对象特性。

1、接口是特殊的抽象类,当使用一个抽象类来实现多态,其实这个抽象类完全就是一个接口,可以用接口来实现。
2、抽象类本身也是类,只是没有具体的含义,只是把实体类的结构抽离出来,抽象类可以当做一群实体类的集合,让这群实体类的一些特性捆绑在一起。
3、接口可以把所有无关的类联系到一起,一个单独的实体类跟外界没有任何关系,只有使用了接口,才能把其他类关联起来。
如果把一台电脑当一个程序来看,那电脑的CUP、硬盘、主板、键盘鼠标都可以写成单独的类,然后提取出这些单散的物件的共性来作为抽象类,比如所有的物件都是电器,那电器就是这些物件的抽象类,正因为使用了抽象类,让所有物件之间产生了一些联系,捆绑成一个综合体,而这些单散的物件只能提供自己的功能,需要配合其他物件才能正常工作,让这些物件配合在一起的途径就是使用接口,这也是所谓的面向接口的编程,接口是暴露在外部的与其他类通信的唯一入口,CUP有CUP的接口,内存条有内存条的接口,硬盘有硬盘的接口,鼠标有鼠标的接口,键盘有键盘的接口,主板上实现这些物件的所有接口,让所有物件能与主板联系起来,这样一台电脑就能正常工作了。
为什么说面向对象是可扩展的,就拿上面电脑这个例子来说吧,现在我们电脑已经正常工作了,以后如果电脑上要接打印机,只要在主板上实现打印机的接口,然后将打印机接到电脑上,这样就扩充出新的功能来,这也就是面向对象的可扩展性。
再来说说多态吧,比如主板上的U盘接口,也可以用来接MP3,这也就是面向对象的多态性。
我不知道我有没有写清楚,我是理解了,你理解了吗?
原文地址:https://www.cnblogs.com/huanghai/p/2185439.html