Risposta rapida breve
La risposta è molto soggettiva per l'analista del software o il modellista del software.
Risposta di alesaggio estesa
Esistono diversi concetti correlati o parte del paradigma Object Oriented.
Ne hai già menzionato la maggior parte.
Ad esempio, un concetto che non hai menzionato, è il passaggio di messaggi, che manca nella maggior parte degli O.O. linguaggi di programmazione, ed era disponibile, insieme con l'incapsulamento e l'ereditarietà dei primi O.O. linguaggi di programmazione ("Simula").
Ho lavorato a volte con diverse varianti o "idiomi" di Object Oriented Pascal,
che aveva molte di quelle funzionalità, e c'era una variante che permetteva di usare "messaggi",
come parte del linguaggio di programmazione (parola chiave "messaggio"), simile alle eccezioni "try catch", ma, senza interrompere l'esecuzione.
Mentre, altre varianti e altri linguaggi di programmazione sono forniti come librerie opzionali (funzioni non parole chiave).
Riepilogo
Potresti scoprire che a volte un linguaggio di programmazione potrebbe saltare alcuni di essi e essere ancora considerato da alcune persone O.O., mentre altri no. È molto soggettivo.
Stai chiedendo pura curiosità intellettuale?
Ti chiedi se il linguaggio di programmazione che stai utilizzando sia completamente O.O. ?
Stai lavorando con un lavoro di collega / università personalizzato O.O. linguaggio di programmazione?
Lavori con un hobby, un progetto per animali domestici, un O.O. personalizzato linguaggio di programmazione?
Queste domande, è la mia curiosità personale, ma, anche per sapere come rendere la mia risposta più chiara; -)
Ci sono alcuni linguaggi di programmazione e amp; programmi di confronto di paradigmi di programmazione presso università e università, che trattano questo argomento.
Saluti.