面向对象的三大特性 基本问题

来源:互联网 发布:网络客户管理系统 编辑:程序博客网 时间:2024/06/08 11:39

1. abstraction.
2. encapsulation.
3. inheritance.
4. polymorphism.

抽象比其他三个更重要。另外还有几个面向对象设计的几个原则:

OCP.
VOD.
LSP.
DIP.
ISP.
LOD.
SRP.

 

封装、继承、多态

的确,封装是一切的基础
因此楼主封装包含了一切有一点道理的

但是,实现了封装,并不一定就立即自动支持继承

同样,实现了继承,并不一定就必然支持多态

完全可以设计一个语言出来,仅支持封装,或封装加继承

因此,这3大特性就是面向对象的基本特性

至于前面回复中有人提到的很多设计原则,都是部分或全部基于上述3大特性的综合应用
一个是基础特性,一个对于基础的运用

至于抽象,这是所有计算机语言的基础
因此,一个具有抽象概念的语言,不一定是一个面向对象的语言

综合:
具有抽象的概念,是计算机编码语言的必要条件之一

封装,是面向对象编码语言的必要条件之一
继承,是面向对象编码语言的必要条件之一
多态,是面向对象编码语言的必要条件之一

封装,继承,多态是判断是否是面向对象编码语言的充分条件
失去任何一个,理论上就不能被认为是面向对象的语言

多态依赖于但不等于继承,继承依赖于封装但不等于封装

原创粉丝点击