1.)Is it correct to say..... if i import ERC721.sol into my contract then all the ERC721.sol functions are accessible even if i don't list all the functions in the contract? Meaning... i don't necessarily have to list/write out each function in my contract but users can still use all of them (ERC721 functions) just as long as i import it into my contract?
2.)By contrast, if i use/import an interface like IERC721 into my contract than I "MUST" display/list "ALL" the functions in my contract? I can't just use a few of them, i have to use ALL of them right?
3.)Why would one choose to use the interface (IERC721) when designing his contract, versus the actual standard contract (ERC721)? Is it just because its easier for other users to interact with it? Is that the main benefit?