I could not find this question anywhere. Based upon my understanding, Inheritance should/might be the subset of Abstraction.
First of you should be aware, that here is always some leeway in interpreting such terms and concepts. Below is my take on it.
Abstraction is the concept while inheritance is a technical realization.
Abstraction in general refers to the leaving out of (unnecessary) details. The opposite direction is concretization. Generalization is also often used in this context and basically means the same as abstraction.
In the context of computer science this can be used to describe several ideas:
One is the modelling of domain concepts. As in the class Car is an abstraction of real world automobiles. It uses an engine and four wheels to transport 1-5 people.
Obviously this is nowhere near the informational density to describe a real car, but it may very well be all that is needed for the context of this application.
An other is to use it to describe the conceptual relation between multiple domain entities: A Car is a Motorvehicle. A Bus is also a Motorvehicle. Both are used to transport people.
The Motorvehicle is the abstraction of both Car and Bus. It describes the idea of transporting people, while leaving out the detail of how many.
A third is the difference between an interface and an implementation. The interface abstracts the implementation by hiding the implementation details and only representing the surface area with which one may interact.
Inheritance is one method of realizing abstractions in code. It describes the process of taking a base class (this is the more general or abstract thing), inheriting all of its features/properties/behavior/meaning and adding some more details (or overriding some of the existing) to create the derived class (this is the more concrete thing).