Serializacja to wbudowany mechanizm zapisywania obiektów, który pozwala na binarny zapis całego drzewa obiektów. Oznacza to tyle, że jeśli mamy obiekt X, który posiada referencję do obiektu Y to serializując X również Y zostanie automatycznie zapisany w strumieniu wyjściowym.
O czym to mówi: np. mająć pusty interfejs Auto, lub List jak kolega wyżej CI napisał:
tworząc obiekty, takie jak Audi,BMW, Fiat - wszystkie te obiekty są samochodami, z pewnymi różnicami. Wyobraź sobie, teraz że masz w bazie danych ( table i tak jeden z atrybutów to jest model samochodu )- wybierasz wszystkie zapytaniem modele ... i pakujesz do listy? To widzisz- ta lista zawiera niby, te same, ale jednak całkiem inne obiekty. Bo wszystkie to samochodzy, ale każdy z osobna jest innym samochodem.
Wyobraź sobie teraz sytuacje bez możliwości takiej serializacji z interfejsem Samochodu? Musiałbyś tworzyć liste- dla każdego modelu osobno List<Model1>, List<Model2> i wybierać do nich elementy w warunku np.
A korzystająć jak kolega zwrócił uwagę po prostu z Interfejsu samochód - wszystkie obiekty bedą przekształcone do pewnej postaci 'SERIALIZOWANE' tutaj do Postaci Samochodu, a następnie potem np można na tej zasadzie odwoływać się bezpośrednio do implementacji