Объектно -ориентированный язык — это язык программирования , который предоставляет конструкцию для инкапсуляции состояния и поведения в виде объекта . Язык, который также поддерживает наследование или подтипирование, классифицируется как объектно-ориентированный . [1] Несмотря на то, что объектно-ориентированный язык кажется надмножеством объектно-ориентированного, они используются как взаимоисключающие альтернативы, а не перекрывающиеся. [ требуется ссылка ] Примерами строго объектно-ориентированных языков — поддерживающих функцию объекта, но не наследование или подтипирование — являются ранние версии Ada , [2] Visual Basic 6 (VB6) и Fortran 90 .
Некоторые классифицируют прототипное программирование как объектно-ориентированное, хотя оно поддерживает наследование и подтипирование, хотя и не через концепцию класса . Вместо этого объект наследует свое состояние и поведение от шаблонного объекта. Обычно используемый язык с поддержкой прототипного программирования — JavaScript ;
Ada 83 обычно не считается объектно-ориентированной; скорее, согласно терминологии Вегнера [Weg 87], ее называют объектно-ориентированной, поскольку она обеспечивает только ограниченную форму наследования и в ней отсутствует полиморфизм.