Please see my comment to the question.
Yes, I already tried to explain you that reading short definitions would be reading just words. But on next step I looked through the article you referenced and found that the situation is much worse. The problem is: this article is nothing serious, frankly, this is total trash, especially the "explanation" of "abstraction". It's pretty apparent that the author himself is pretty much clueless about those concepts. I rarely saw more of gibberish than that "Abstraction and Encapsulation are related features…" quote.
And the fact that the "Interview questions" links (notoriously useless and misleading topic) are referenced in the article, tells the tale. Stop reading trash articles, and you will be much less confused.
You can find a lot more reliable source of explanation of the concepts (but, jumping to the conclusion, this is not the main device you have to use). Before talking about abstraction in programming, you have to get at least general understanding of the most common understanding if this term:
https://en.wikipedia.org/wiki/Abstraction[
^].
It can really help you to understand what is that in programming. In fact, the programming is all about abstractions. Please see:
https://en.wikipedia.org/wiki/Abstraction_%28computer_science%29[
^].
Pay attention for the striking difference between this explanation and the "explanation" you found in the article you referenced. Likewise, you can read on encapsulation:
https://en.wikipedia.org/wiki/Encapsulation_%28computer_programming%29[
^].
And now let me return to my main point.
Reading just the definitions and general explanations will be majorly useless. To learn these abstract and very important fundamental concepts, you have to learn computer science, practical programming itself and programming technology
as a kind of human activity.
Through the process of learning, you can learn how these fundamental concepts really work. Another problem with learning these concepts is:
learning them without learning a number of other fundamental concepts would also be useless. You really need holistic understanding of programming, which can only come with effort and
iterative learning process, not at once.
What to read? I'm afraid to confuse you. There is a lot of literature, but, at the same time, there is a lot of popular misconceptions which are also widely represented in various publications. This can be very confusing. I want to give you just one example. There is a popular didactic approach claiming that there are
four OOP "pillars": abstraction, encapsulation, inheritance and polymorphism, and such claim is usually followed by the "explanation" of each. This is nothing but a big "beautiful" lie, but the lie of that kind when the author believes in it. This approach is, to say the least, counter-productive, because 1) these concepts are of different non-matching levels, 2) one concept represents the feature serving as the prerequisite for another one, for example, it's impossible to talk about OOP polymorphism without inheritance. And so on… Here, again, learning the body of computer science can help you to develop critical thinking on the concept. The prerequisite for such thinking is first-hand understanding of how things work.
—SA