Hard Link
Link file has the same inode as the original file.
Its really weird even to call it a link, because its like having the real file somewhere inside the physical memory and having two files referring to that part of the memory.
* Cannot refer to a directory
Symbolic Link
Link refers to the name of a file it refers to.
When the original file is gone but if you put a file with same name there, it would work fine.
* Commonly used to refer to .so file for updating etc.