E' possibile creare una classe che eredita da un'altra, per esmpio creo una classe MioDataGrid che eredita da DataGrid e posso estenderla come mi pare e poi utilizzarla nel mio codice l'oggetto MioDataGrid. Stesso discorso per qualunque altro tipo di classe.
E' possibile invece "sovrascrivere" uan classe, nel senso che creo sempre uan mia classe che eredita da DataGrid aggiungo delel funzionalità ma invece di chiamarla MioDataGrid è proprio l'oggetto DataGrid che, all'interno del mio progetto, diventa la nuova classe avendo le nuove proprietà che ho aggiunto.
Non è molto ortodosso però se mi interessa estendere giusto un DataGrid opppure aggiungere un metodo a String dovrei poi ovunque ho dichiarato variabili del genere andare a modificarle, specialmente nel caso del DataGrid