Class inheritance is by default private. From within the Object class you can access the members of BasicNeed as with public inheritance, but from outside the class it is not visible that the class is derived from BasicNeed. That is why you can't access the BasicNeed member functions from Item.
If you want public inheritance (I'm sure you want), which is the only kind of inheritance in Java, you have to add public before the class name.