Все языковые конструкции "propper" OO должны быть по существу одинаковыми.Они всегда должны иметь все или подразделы следующего (и, возможно, большего).
- класс / объект (совершенно другой)
- метод (против функции)
- метод видимости / контроля доступа (открытый, закрытый, защищенный)
- конструктор
- статические / переменные класса и методы
- деструктор / финализатор
- наследование (и часто множественное наследование)
- интерфейс / протокол
- абстрактный класс
- переопределение
- перегрузка
естьеще много терминов, связанных с вещами, которые являются скорее концептуальными, нежели языковыми, но это короткий (и достаточно неполный) список некоторых вещей, которые вы должны знать для программирования на ЛЮБОМ ОО-языке, стоит того.
Естьхороший список терминов в Википедии, чтобы помочь, если хотите.http://en.wikipedia.org/wiki/List_of_object-oriented_programming_terms
Я бы предложил прочитать о приведенных выше терминах, а также
- Переменные экземпляра
- Полиморфизм
- Состав
- Инкапсуляция
Если вы знаете свои определения ОО, переход с одного языка на другой намного проще, потому что у вас будет очень широкая основа, на которой вы будете стоять, и вам нужно будет только изучить тонкие различия(как при изучении любого нового языка после изучения нескольких, но в большей степени это касается концепций ОО).