HARDLINK:
1) It's a directory entry (a file) pointing to the same inode. Even if you change the name of the other file, a hardlink still points to the file.
2) If you replace the other file with a new version (by copying it), a hardlink will not point to the new file.
3) With hardlinks you don't have concept of the original files and links, all are equal
SOFTLINK or SYMBOLIC LINK:
1) symlink is actually pointing to another path (a file name); it resolves the name of the file each time you access it through the symlink.
2) If you move the file, the symlink will not follow.
3) If you replace the file with another one, keeping the name, the symlink will point to the new file.