Difficult = if something is difficult, it is hard to achieve/hard to do. For instance: "Learning a new language can be difficult."
Hard = this can be used as a synonym for difficult. For instance: "Learning a new language can be hard" also makes sense. It has other meanings too, like: "the hard floor" would mean the floor is solid/firm.
Heavy = if something is heavy, it is hard to move. For instance: "This bag is heavy."
Hope that helps :)