ABItells those libraries about what methods to provide, and how to compose transactions to call those methods.
bytecode. In this case, you will not know the contract address in advance, but instead will have to publish, watch for the transaction to be processed, and then extract the final contract's address from the completed transaction.
ABIif you want to interact with it! The bytecode does not describe how to interact with the final contract.