The Solidity docs mention that: "Contracts need to be marked as abstract when at least one of their functions is not implemented." https://docs.soliditylang.org/en/v0.6.2/contracts.html#abstract-contracts
However, ERC721.sol in OZ implementation is not marked as abstract, even though _beforeTokenTransfer()
and _afterTokenTransfer()
are not implemented. Why is this the case? How is this possible?