Are files defined by their content blocks, inodes, both, or filenames, or something else? Fundamentially, what is the definition of a file?

E.g. 

two hard links can share the same inode and thus content blocks, but they have different filenames. Are they considered the same file or different files?

Are there some files which have different inodes, but the same content block? Are they considered the same file?

Thanks.