objektove myslenie nie je o jazyku, ale o objektoch(vytvorena instancia triedy). ked vytvaras nejaku triedu, musis si premysliet, ktore vlastnosti su prenu splocne a tak ju aj vytvarat. napr. mozes vytvorit triedu ovocie a dalsie triedy jablka a hrusky, ktore z nej budu dedit. napr. musis si rozmysliet, ake vlastnosti ma ovocie spolocne, aby si to zbytocne nezanasal do tried jablka a hrusky a nenastavala duplicita. mna teraz nic nenapada, len ze spolocna metoda by bolo "zjest". potom rozmyslaj co je spolocne len pre jablka a takto postupujes dalej. neskorsie mozno zistis, ze budes potrebovat metodu, ktoru napr. jablka a hrusky musia mat definovanu ale samotna trieda ovocie ju definovanu nema a ani nepotrebuje a to zaistis tak, ze je v triede ovocie zadeklarujes ako virtual. postupom casu zacnes pouzivat take specialitky, ze potrebujes aby nejaky objekt bol v pamati iba raz a nato sluzia singletony. ako uz spominal Mirek Dusin(mimochodom vynikajuci programator), treba si o tom nieco precitat a hlavne pri navrhu tried sa nenahlit a radsej si trochu popremyslat, aby si ju nenavrhol zle. postupom casu to uz pojde samo a uplne lahko.