Ralika je u tome sto u proceduralnom programiranju pravis procedure koje rade neki posao pa kada treba da se obradi neki podatak ti pozoves proceduru kojoj kao parametre prosledis podatak i sve sotalo neohpodno za obradu.
U objektnom pristupu je slicno, samo sto se formira objekat koji u sebi sadrzi sve neophodne procedure, tako da umesto da prosledjujes sve sto je neophodno proceduri, ti izvrsis nekuproceduru u objektu. Samim tim sto je procedura u objektu ona ima dostupno gomilu stvari koje onda ne moras da joj posebno prosledjujes. Posledica je da umesto da u programu baratas sa gomilom parametara, ti baratas sa objektima koji u sebi sadrze potrebne parametre.
Sledece sto dobijas to je mogucnost nasledjivanja. Ako napises klasu za jedan jednostavan objekat a zatreba ti objekat koji je vrlo slican tom koji si napravio samo ima neku dodatnu funkcionalnost, ti umesto da pravis iz pocetka, nasledis klasu prvog objekta i nadogradis je potrebnom funkcionalnoscu. To ne samo da ti olaksava programiranje, vec dobijas dve vrlo bitne stvari: prvo, razliciti objekti mogu tako da budu na nekom nivou medjusobno kompatibilni, i drugo, ako naknadno zatreba da se nesto promeni korenski u funkcionalnosti objekata to promenis u osnovnoj klasi i automatski se ta izmena prenosi na sve klase koje su njeni naslednici.
Login moze da bude lep primer primene objektnog prsitupa. Recimo da napravis klasu koja ima sledece funkcije:
classLogin {
Init;
Login;
Logout;
IsUserLogedIn (usernamme);
CheckUserLevel (userlevel);
}
E sad, unapred islaniras da moze da se pojavi potreba da se login radi prema razlicitim sistemima autentifikacije: prema lolanoj datoteci sa bazom korsinika, prema nekoj pravoj bazi, prema SMTP serveru, prema LDAP, prema Radiusu ili neki drugi nacin koga se ne mozes setiti.
Ako tako razmsiljas onda ces napraviti osnovnu klasu koja vise definisa standardni interfejs za komunikaciju sa klasom, a prava klasa koja ce zaista da radi posao ce da nasledi tu osnovnu i u njoj implementira funkcije. Tako ce ces moci da imas vise klasa koje nasledjuju osnovnu i rade autentifikaciju prema razlicitim sistemima, ali, posto sve te klase nalsedjujuosnovnu, to znaci d aimaju isti interfejs i da se sa svakom komunicira na isti nacin. U praksi, to znaci da tvoj program moze da radi autentifikaciju prema nekom istemu tako sto ce da u datom ommentu inicijalizuj objekat odgovarajuce klase i komunicirace sa njom isto kao i sa bilo kojom drugom klasom koja je nastala kao nalednik osnovne klase za autentifikaciju. Koju god klasu za login da upotrebi, tvoja aplikacija ce u njima imati funkcije Init, Login, Logout, isUserLoggedfin i CheckUserLevel, sto mu je sasvim dovoljno.