When it comes to grabbing objects in our world my preference would probably be towards using a component rather than inheritance.
With inheritance I imagine that you would need to know beforehand that a certain object will need to have the ability to be picked up, so to make it child of a parent of things that can be picked up.
In my mind using components might make the process easier if I change my mind about an object I’ve already created. I could simply add the “pick up” component to it, rather than have to recreate it using the proper inheritance.
Having said that, you could possibly make all objects a child of a “pickup-able” parent and use a boolean to decide whether you can pick the item up or not. I just think using a component might be easier in the long run.
In order to know what items to “grab-able”, there could be a visual queue of some kind (this could appear when the player gets within a certain range of the object), or the player may have to press a button to grab the object (if the item is “grab-able” it will work, otherwise it will not) and release the button (or press it again) to drop the item.