You have many private keys
Quintessentially, a wallet is a key chain for your private keys plus optional convenience and usability functions. When you create a wallet, at least one but usually lots of private keys are generated. E.g. Bitcoin Core keeps 100 unused private keys in store at all times by default, and whenever you use a new address, this pool of unused keys get topped up again.
You have a different private key for each address
- From a private key, you can easily derive the corresponding public key: Together they form an ECDSA key pair on the
secp256k1 curve. You cannot easily derive the private key from the public key.
- The address is then derived from the public key: First you hash the public key with
SHA-256, then you hash the result with RIPEMD-160. The result is then formatted in Base 58 including a checksum.
Therefore, each private-key only corresponds to one address.
(Vice versa, each address corresponds to 2^96 private keys, of which any one is sufficient to spend any funds associated with the address, but that doesn't concern us here.)
The above is true for any wallet that uses unrelated private keys. There is also another scheme which is called hierarchical deterministic wallet: There, you create one "master key" from which you can recreate all following keys deterministically.
Simplified:
Master key: 12378925612143
key + 1: 12378925612144
key + 3: 12378925612146
key + 6: 12378925612149
key + 10: 12378925612153
key + 15: 12378925612168
key + 21: 12378925612174
key + 28: 12378925612181
…
As you can see, if you have the master key, and know the derivation rule, you can recreate the same keys again.
This is safe, because even when providing a signature, your private key is never revealed, or even when you reveal one out of your chain of private keys, your derivation rule is still unknown.
Different addresses are for privacy
Why should you actually use a different address every time? Actually, it is fine to use an address for multiple transactions. Most wallets do not do it, to increase privacy: If you use the same address over and over again, it is obvious that all these transactions are related to the same person. By using a new address for every transaction, transactions may still be linked by clever blockchain analysis but it isn't immediately obvious, may be plausibly deniable, or (with some effort) transactions can even appear completely unrelated.