Di esempi è pieno Internet oltre a qualsiasi libro.
Non è affatto una cosa astratta ma del codice che viene eseguito quando viene distrutto un oggetto di quella classe. Ad esempio se l'oggetto utilizza un file, nel distruttore metti il codice per chiudere il file, se utilizza delle risorse, metti il codice per liberare le risorse.
È valido nella programmazione OOP e viene utilizzato in altri linguaggi come il C++. Se non è necessario non metti codice.
Non vedo cosa ci sia di difficile…