Java 抽象,一个面向对象与非面向对象的概念

Java 抽象,一个面向对象与非面向对象的概念,java,oop,Java,Oop,我正在阅读OOPS概念,并陷入了抽象。我不能完全理解这个概念。因为我觉得它不仅仅属于OOPS。它在C中也有使用,但是如何使用呢 java抽象不同于C语言抽象。我知道这不是一个好问题 对于这个论坛,我无法得到完美的答案。抽象意味着隐藏或分离代码的一部分到另一部分的复杂细节。比如说,你必须使用一种进行复杂计算的方法,并给出一些结果。因此,与其内联编写方法,不如在只公开签名(参数和返回类型)的方法中编写方法。这样,您的调用方(方法的调用方)仍然不知道该方法背后的复杂代码 通常,当您在c/c++中使用库

我正在阅读OOPS概念,并陷入了抽象。我不能完全理解这个概念。因为我觉得它不仅仅属于OOPS。它在C中也有使用,但是如何使用呢 java抽象不同于C语言抽象。我知道这不是一个好问题
对于这个论坛,我无法得到完美的答案。

抽象意味着隐藏或分离代码的一部分到另一部分的复杂细节。比如说,你必须使用一种进行复杂计算的方法,并给出一些结果。因此,与其内联编写方法,不如在只公开签名(参数和返回类型)的方法中编写方法。这样,您的调用方(方法的调用方)仍然不知道该方法背后的复杂代码

通常,当您在c/c++中使用库函数或在java中使用API时,它也是一种抽象


因此,事实上,抽象不仅是OOP,而且一个通用概念可以应用于任何地方(甚至在编程之外)。

您是正确的,它是一个通用编程概念,当然不限于OOP。不确定问题是什么。你不懂抽象?BTW,C没有抽象,C++做的。java和C++的主要区别在于java只能继承一个类,而C++中可以继承几个类。为了(某种程度上)解决这个问题,在java中您有接口。@caerolus:C程序当然可以用抽象的方式编写。在结构语言中这样做可能不那么直接,但肯定可以做到。@HovercraftFullOfEels肯定可以做到,但由于C不是面向对象的,我认为最好坚持使用实际的面向对象语言和概念,而不是变通方法。我的感觉无论如何,但抽象的手段是隐藏内心的细节。如果我调用库函数或自定义函数,那么它也是抽象。(如果我错了,请纠正我)谢谢你的回答。你能再告诉我一件事吗,oops比以前的结构化语言更抽象,因为它引入了封装和访问说明符?@DurgaDutt:没有什么比“更抽象”了。由于这些构造,在OOPs中实现抽象更容易,仅此而已。毕竟,每种编译器/编程语言都不过是一个添加了语法糖分的基本图灵机的迭代。“隐藏或分离代码一部分的复杂细节到另一部分”是封装,而不是抽象。亲爱的@Param,封装是将数据和方法捆绑在一起。尽管它反过来隐藏了细节以提供抽象。所以,最好在指指点点之前仔细检查一下自己。