我试图理解OOP中'抽象'的定义。
我遇到了两个主要定义。它们都有效吗?其中一个错了吗?我糊涂了。 (我用自己的话重写了这个定义。)
定义1:
抽象是从现实世界中获取某些物体并将其转换为编程术语的概念。例如创建Human
类并为其提供int health
,int age
,String name
等属性,以及eat()
等方法。
定义2:
更一般的定义。抽象是一个在软件系统中 的概念,其中 '使事情更通用/更简单/抽象' 。几个例子:
继承层次结构,其中较高的类更简单或更通用, 并定义更一般和抽象的实现。 而层次结构中的较低级别更具体和定义 更详细的实施。
使用封装来隐藏其他类的实现细节,从而使类更加“抽象”(更简单)到外部软件世界。
这些定义是否正确?
(我指的是最传统和最接受的定义)。