Objective-C: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 2 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v1.6.5)
Corretto wikilink, ora punta alla voce non al redirect
Riga 211:
 
=== Protocolli ===
Objective C è stato esteso da [[NeXT]] per introdurre il concetto di [[ereditarietà multipla (informatica)|ereditarietà multipla]] di specifica, ma non di implementazione, attraverso l'uso dei protocolli. Questo è un [[design pattern|pattern]] ottenibile sia mediante una forma di ereditarietà multipla da una [[classe astratta]] (come in C++), sia (come più comunemente in Java o [[C sharp|C#]]) mediante l'uso di un'[[interfaccia (informatica)#Interfaccia nella programmazione orientata agli oggetti|interfaccia]] (anche in c++ ci sono le interfacce, anche se non esiste una keyword esplicita per dichiararle). Objective C fa uso di entrambi i protocolli, chiamati ''protocolli informali'' e di protocolli imposti dal compilatore detti ''protocolli formali.
 
Un protocollo informale è una lista di [[metodo (informatica)|metodi]] che possono essere implementati da una classe. Viene specificato nella documentazione, dato che non è presente esplicitamente nel linguaggio. I protocolli informali spesso includono metodi opzionali, dove l'implementazione del metodo può cambiare il comportamento della classe.
Riga 585:
Dato che Objective C è uno stretto [[superinsieme]] del C, non tratta i tipi primitivi del C come [[first-class object]].
 
A differenza del C++, Objective C non supporta l'[[overloading]] degli operatori, consente l'[[ereditarietà (informatica)|ereditarietà]] solo diretta da una singola classe (vietando così l'[[ereditarietà multipla (informatica)|ereditarietà multipla]]). Dato che il [[linguaggio Java]] venne influenzato dall'Objective C, la decisione di usare l'ereditarietà singola venne portata anche in Java. In alternativa all'ereditarietà multipla possono essere usate le [[#Categorie|categorie]] ed i [[#Protocolli|protocolli]].
 
=== Differenze filosofiche tra Objective C e C++ ===