That is NOT correct.
So one private key can generate only one public key and that one public key can generate only one address?
The private key in Wallet Import Format (WIF) as most of us are used to seeing it actually has 3 important parts.
https://en.bitcoin.it/wiki/Wallet_import_format- (1 byte) A version number.
- (32 bytes) The ECDSA private key.
- (4 bytes) A checksum.
By changing the version number, you can generate different bitcoin addresses (one for an uncompressed public key, and the other for a compressed public key) with the same ECDSA private key. This will result in a different WIF (both the version number and the checksum will be affected) for that private key though, so when viewed in the typical format it will appear to be a different private key.
You are correct. There are potentially nearly 2256 public keys, and there can't be more than 2160 bitcoin addresses. Therefore, there are likely to be multiple public keys (and therefore multiple private keys) that all result in the same bitcoin address. Fortunately, there is no known way to find these additional keys that result in the same address.