RFID is short for Radio Frequency Identification, a technology that uses primarily non-powered tags (but not only) that through electromagnetic induction from a nearby transponder gets enough energy to send back its canned information. Obviously, the radio power generated is tiny, so RFID is intended for short distance communication only.
An RFID tag typically contains a relatively large antenna for capturing the transponder energy, and a chip containing the identity of the tag, as well as a radio transmitter.
In many areas like production, transport, warehousing etc RFID can replace barcodes, especially when barcode reading techniques won’t work or there’s need for more data. RFID is still considerably more expensive to deploy than barcodes, but a tag is now down to sub-$ and is often glued in place, like a label. In the future tags will be much smaller (tags the size of rice have been made), as well as printed directly on a label or document.
NFC or Near Field Communication is a specific application of and specification for RFID, intended for use with primarily mobile phones for tickets, payments, and other types of secure identification. The NFC standard also defines semantics like URL, e-mail, SMS etc, similar to QR Code.