Hard edges and curved surfaces
For visual purposes it is sufficient to approximate the surface with a mesh / wire and use smooth shading afterwards to make the surface appear smooth.

Same mesh using flat shading(top) and smooth shading(below)


To create curved surfaces the common approach in blender is using catmull-clark subdivision.

Catmull-Clark subdivision using crease edges(pink)