Why do we need to import ERC721 when we use ERC721 extension?

If you have experince using Openzeppelin wizard to generate ERC721 when you check Enumerable
you will see

contract MyToken is ERC721, ERC721Enumerable

but if you go to ERC721Enumerable itself you will see it's already ERC721

abstract contract ERC721Enumerable is ERC721, IERC721Enumerable

What is the reason behide this ?

1 Like

This is done for clarity as a best practice. See reasoning here: https://github.com/OpenZeppelin/contracts-wizard/issues/101#issuecomment-1066978279