Ciao.
Ben tornato.
E questo è il dilemma.
Quindi, se non hai finito con questo capitolo, in questo capitolo abbiamo appreso alcuni concetti
fondamentali di programmazione orientata agli oggetti.
Abbiamo iniziato con l'ereditarietà e nel processo abbiamo introdotto il polimorfismo Abbiamo quindi discusso la scrittura del metodo.
Abbiamo anche discusso della classe dell'oggetto che è la madre di tutte le classi e, infine, del concatenamento del costruttore di Lubet.
Ora andiamo avanti e guardiamo alcune delle cose importanti che abbiamo trattato in questo capitolo. L'ereditarietà è una
delle caratteristiche fondamentali della programmazione orientata agli oggetti.
Diamo un'occhiata ad alcuni vantaggi per l'ufficio che fornisce scrittura di codice duplicato in quanto il codice duplicato può essere astratto o
esterno a una superclasse, ma non si tratta solo di correggere il codice duplicato.
L'ereditarietà consente inoltre una migliore progettazione in quanto ci consente di definire le relazioni gerarchiche tra le classi
attraverso le super-classi sul sottoprocesso e quindi terminare ogni capitolo.
È stato detto che la programmazione orientata agli oggetti aiuta a moderare gli scenari del mondo reale in un modo
più neutrale.
E questo è stato dimostrato in questo capitolo quando abbiamo visto come l'aiuto all'ereditarietà si presenta con un
design finale molto bello nella nostra storia lavorativa.
Oltre ad ereditare l'ereditarietà delle funzionalità, possiamo anche leggere la funzionalità della superclasse che è approssimativa e che
può essere usata per definire e parare un nuovo comportamento specifico della sottoclasse o del supplemento che
può essere usato per estendere il comportamento del supercluster ed è qui che il super facile il lavoro
entra in gioco
Anche una sottoclasse che può anche fornire un'implementazione molto migliore dell'ereditarietà.
Permette anche che la superclasse stiano definendo un protocollo comune per tutte le sue
sottoclassi e sappiamo che questo è molto importante e aiuta a raggiungere qualcosa chiamato polimorfismo e polimorfismo aiuta chi
scrive codice flessibile e pulito che implica il codice che è meno suscettibile a cambia e cambia qualcosa
che accade tutto il tempo in qualsiasi ciclo di vita del software.
Inoltre, ricorda sempre di usare entrambi i test se vuoi far diventare una classe una sottoclasse di un'altra.
Si noti inoltre che una classe può sempre estendere solo un altro US e questo è molto critico.
Tenere presente che il compilatore utilizza il tipo di riferimento di una variabile che ha deciso che un metodo
può essere invocato o meno.
OK, quindi userà il tipo di riferimento quando si tratta dei metodi di istanza in fase di esecuzione.
JVM utilizza sempre l'oggetto entrambi disponibili per decidere quale metodo viene richiamato in quanto conosciamo la JVM.
La nozione più specifica del metodo nell'albero ereditario.
Tuttavia quando si tratta di metodi statici.
Basta ricordare che la decisione su quale metodo statico dovrebbe essere invocato viene sempre eseguita in fase
di compilazione stessa in quanto i metodi statici sono metodi di classe e non hanno nulla a che fare
con oggetti creati in runtime in modo che non siano legati solo al concetto di override fare quando applicato a loro.
Quindi tutto il concetto è qualcosa che entra in gioco solo in fase di esecuzione con oggetti quando si tratta di scavalcare il
metodo.
Ci sono solo buone regole che dobbiamo seguire oltre ad avere lo stesso meccanismo.
La prima regola è che se ci sono dei parametri di metodo, il metodo di override dovrebbe
anche avere emettitori semplici.
C'è un numero di parametri.
Dovrebbero essere anche i tipi di parametri e l'ordine dovrebbe essere visto dove il tipo di ritorno dovrebbe
essere comparabile.
Questo significa che può scrivere nella scrittura, ma dovrebbe essere uguale o di tipo scritto nel
metodo della superclasse.
E la seconda regola è che il metodo prevalente non può essere meno accessibile.
Questo è il livello di accesso deve essere uguale o più amichevole.
Essenzialmente queste regole suggerirebbero che il metodo operativo sta per soddisfare il contratto
definito dalla superclasse, non che la superclasse stia definendo il protocollo comune per tutte le sue sottoclassi.
Quindi il mondo esterno.
Che cosa significa che i metodi di scrittura nelle sottoclassi apparirebbero esattamente come i metodi sovrascritti di Gupte VENX ha discusso
la classe di oggetti che è madre di tutti i processi, così come fa la classe radice di qualsiasi albero
di ereditarietà.
Quindi ogni classe estende direttamente o indirettamente un oggetto più una classe di oggetti definisce i metodi di sobra che possono essere
utilizzati nella sottoclasse. Inoltre, poiché è il top più Glosson 900 e St.
Quindi, come tipo polimorfico sul lavoro, i progettisti l'hanno pienamente utilizzato come tipo polimorfico in molti dei
metodi della libreria Java.
Un altro concetto interessante di ereditarietà è il processo di concatenazione del costruttore, il costrutto che
io penso che il superammasso sia inizializzato prima della sottoclasse.
Quello è quando un oggetto di sottoclasse viene creato nell'esecuzione del costruttore della superclasse prima del costruttore della sottoclasse
che esegue fino al completamento.
E questo è necessario.
Una sottoclasse potrebbe ereditare metodi di superclasse che potrebbero dipendere dal superammasso.
Quindi il supercluster non è inizializzato, quindi potremmo incorrere in problemi seri in quanto i metodi ereditati potrebbero funzionare
su alcuni stick non corretti.
Quindi la prima affermazione in un costruttore di sottoclasse sarebbe un carrello con un costruttore di superclasse per invocare un
costruttore di superclasse.
Usiamo una dichiarazione di invocazione super e, se non ne forniamo una, il compilatore ne inserisce una per
noi e ricorda che se c'è una dichiarazione di missione non funziona, non possiamo usare
un'istruzione di super chiamata nello stesso costruttore in questo caso.
L'ultimo costruttore sovraccarico verrà utilizzato per ottenere il costruttore della superclasse.
Suppongo che questo sarebbe ancora fresco nella tua memoria per prevenire l'ereditarietà.
Possiamo prendere in giro le classi finali o possiamo usarle.
Ma leggo il costruttore che tu definiresti le classi di Marber se l'istanza di classe fosse necessaria, come in quel caso, non
fare una classe di stringhe e tu dovresti usare un costruttore privato.
Se la classe è una classe di utilità che include solo metodi statici con classi di
costruttori private non intangibili non estensibili.
E sappiamo che la classe di matematica usa un costruttore privato e che sono presenti tutti i
punti chiave trattati in questo capitolo e nel prossimo capitolo continueremo ad apprendere concetti di design più orientati agli oggetti
e spero che vi stiate divertendo a conoscere questi concetti orientati agli oggetti.
Grazie per l'ascolto e ti vedrò nel prossimo capitolo e come.