Ve zbytku do sebe mícháš abstraktní teorii a implementaci. Což je v informatice dost ostuda. Každý jazyk, který umí pracovat dle zásad OOP je "správný objektový jazyk".
Cituji prvotní hlášku : V Javě se programuje jako v jakémkoliv jiném OOP jazyce.
O implementaci OOP snad v této hlášce hlavně jde, ne ? Jaká ostuda s abstraktní teorií a implementací ? Jde o to, jakým způsobem se ve výsledku s objekty v daném jazyku pracuje, ne jak je OOP definované. Samozřejmě stačí splnit pár definic OOP a je na světě objektový jazyk.
A teď - starý VB6 neuměl klasickou dědičnost, skládal místo toho objekty. Je to správný objektový jazyk ? Splnil všechny definice OOP ? Je Javascript nebo PHP objektový jazyk, tj. jsou pro tu správnou práci s objekty potřeba typy jak v Javě ? I ve Scheme se dají klidně vytvořit objekty, i když je jinak tento jazyk zaměřený na funkcionální paradigma. Bavíme se stále jenom o tom, jak se v jakémkoli jiném jazyce PROGRAMUJE(z první hlášky). Každý jazyk si řeší OOP po svém -> nemáš pravdu. V Javě se totiž programuje jak v osekaném a zjednodušeném C++(říká se jí proto C--).