When the host has a private-use address, there's not necessarily a single public IP (through NAT etc). Packets from my computer will currently appear from two possible public addresses, depending if they've been routed through the work VPN.
When the host has a non-private-use address, there might still be NAT, or there might be no Internet access. I have servers in 128...* without Internet access.
The "public" address might differ depending on the destination or anything else.
"ip ad" shows the address(es) the network interfaces has, nothing more.