AES256 is a specific symmetric encryption scheme, which requires the communicating parties to have pre-shared an encryption key. Public-key cryptography on the other hand is an asymmetric encryption principle, where each communicating party has a public key shared with every one and a private key which he keeps a secret. A typical example for the latter would be RSA.
Both symmetric and asymmetric encryption have there pros and cons, you should first figure out what you (or your client) want. Then, when implementing any cryptography always be sure to use common libraries and never (ever) try to implement any cryptography algorithms yourself. Small mistakes in these topics often lead to complete insecurity.