What is the definition of natural abstraction?

What is the proper use or definition of abstraction in object-oriented programming?

  • From: I'd like to point out that using objects and inheritance to represent real-world things is usually not a good idea. Many will disagree with this, but then again, many are not as good programmers as they think they are. I bring this up because it sounds like you are using a textbook definition of "the OOP principle of abstraction", and many textbooks give a hopelessly bad impression of what OOP abstractions are used for in practice.

  • Answer:

    "Abstraction is the elimination of the irrelevant and the amplification of the essential" Data Abstraction - eg: primitive types, structure, files Control Abstraction - eg: functions, threads, process, control constructs Object Abstraction - eg: Data and its associated control/behavior I suggest to go through the paper : http://dl.acm.org/citation.cfm?id=243441 by Antero Taivalsaari to appreciate the concept of abstraction. An image from the same paper to signify the concept of abstraction:

Prathab Kali at Quora Visit the source

Was this solution helpful to you?

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.