‫Bentornato all'esempio del polimorfismo e a questo video, userò un approccio diverso in cui, prima di tutto,
‫hai una piccola sfida.
‫Dovresti scrivere del codice che ti aiuti a capire un po' meglio o meglio l'ereditarietà.
‫E poi andremo nei moduli per i sondaggi, faremo parte di tutto questo programma.
‫Quindi, per favore, vai avanti e prova a scrivere il codice in base a questa sfida qui.
‫Video così positivo e provato.
‫Va bene, spero che tu l'abbia provato, quindi creerò una nuova classe di classe Ed
‫e la chiamerò auto, e questa classe sarà solo una classe generale di auto.
‫E può contenere o dovrebbe contenere proprietà.
‫Destra.
‫Come ho detto, dovrebbe avere una proprietà chiamata HP Propp e dovrebbe essere un numero intero.
‫E HP sarà la potenza.
‫Quindi quanto è potente questa macchina?
‫E poi un'altra proprietà, che è di tipo string e che è il colore.
‫Ora quello di cui ho bisogno è avere un costruttore.
‫Quindi creerò un'auto pubblica che incorpori l'HP e il colore.
‫E qui ho appena detto questo punto HP come HP e iniziano il colore ha il colore.
‫Quindi questo colore sarà il nostro colore di proprietà e l'HP sarà l'HP della nostra classe o il nostro
‫oggetto creato di tipo auto.
‫Ora il prossimo dovrebbe essere il metodo dei dettagli.
‫Quindi il vuoto pubblico mostra i dettagli.
‫E qui scriviamo semplicemente qualcosa sulla console.
‫Quindi s. W. , HP sarà più HP.
‫Poi abbiamo il colore, che dovrebbe essere qualcosa come il colore.
‫Quindi, ovviamente, potrei usare un approccio diverso in cui uso la manipolazione delle stringhe qui, ma
‫lo terrò così.
‫Molto semplice.
‫Quindi il prossimo è un vuoto pubblico e si chiama riparazione.
‫E cambieremo questi due metodi in seguito.
‫Quindi nessun problema.
‫Ma per ora, volevo mantenerli molto semplici con il progetto che abbiamo usato
‫finora che renderà più chiaro cosa fa il polimorfismo.
‫E qui, proprio mentre l'auto è stata riparata.
‫Tutto bene.
‫Quindi quella è la nostra macchina ed è la nostra classe base.
‫E ora abbiamo bisogno delle altre due classi, che è la nostra BMW, la classe BMW.
‫E qui, come ho detto, abbiamo una proprietà aggiuntiva chiamata modello, e questo è un modello di stringa.
‫Ora, un altro aspetto era il marchio, che è un membro privato.
‫Quindi marchio di corde privato, e si chiama BMW.
‫Ora, dopo, abbiamo bisogno di un costruttore.
‫Quindi una BMW pubblica.
‫E prima di farlo per creare il costruttore, voglio ereditare da auto.
‫Quindi ora la mia BMW erediterà dall'auto.
‫E quello di cui ho bisogno qui è l'HP,
‫poi il colore e il modello e qui a Tacoma.
‫Quindi quello che posso fare è impostare l'HP su in realtà posso anche andare avanti e fare lo stesso con il colore, che sarà
‫il colore e il modello che è di nostra proprietà dovrebbe essere il modello.
‫Quindi questo qui, là, lo uso perché lo voglio per questo oggetto e la stessa cosa che posso fare
‫qui e posso fare qui.
‫Quindi, anche se non li ho creati qui, come vedete, posso ancora usarli.
‫Ora, ecco qualcosa che non hai ancora visto, che è di base.
‫Quindi posso usare la parola chiave base qui e poi posso semplicemente dire, OK, voglio usare HP e il colore della mia classe
‫base, quindi non ho più bisogno di quelle due linee, quindi posso anche liberarmene.
‫Come puoi vedere ora, anche la freccia scompare.
‫Quindi ora abbiamo creato un costruttore che usa il costruttore di base della nostra base, che
‫significa la nostra classe di base, che è la nostra macchina, userà solo questo costruttore e aggiungerà solo il modello.
‫Quindi ora abbiamo un costruttore molto breve che fa tutto il lavoro per l'intero lavoro.
‫Quindi ora ciò di cui ho bisogno sono i dettagli dello spettacolo vuoto, come ho detto.
‫E qui voglio solo mostrare i dettagli e copierò semplicemente il metodo da qui o la voce
‫del metodo.
‫E qui dentro sarà il marchio per primo.
‫Quindi marchio più.
‫Marchio più HP, quindi stavo solo per mostrare alcuni dettagli aggiuntivi, e qui, come vedi i dettagli, i dettagli dello spettacolo di auto
‫membro ereditato da Hydes usano la nuova parola chiave se si intendeva nascondersi.
‫Ed è qualcosa di cui parleremo nel prossimo video.
‫Ma per ora, creiamo anche il metodo di riparazione, riparazione del vuoto pubblico.
‫E qui dentro dovrebbe solo dire qualcosa come la BMW e
‫qui dentro è stata riparata.
‫Allora cos'è questo zero che ho lì?
‫Bene, questo è il modello.
‫Quindi voglio solo sapere il modello dell'auto.
‫E dirò solo, diciamo BMW Zevi come EFORE o e tre o cinque sono stati riparati.
‫Quindi questo è quello che dovrebbe fare.
‫E ora ne ho bisogno di un'altra, di un'altra classe, che è abbastanza simile a quella che abbiamo qui.
‫Quindi creerò una nuova classe e la chiamerò Audy.
‫E per semplicità, copierò la maggior parte delle cose qui, in realtà l'intera classe, perché sarà
‫molto simile.
‫Ciò che è diverso qui è che è un'Audi e che abbiamo l'autorità come costruttore e,
‫naturalmente, deve ereditare dall'auto.
‫Quindi ora che è fatto e ora arriva la parte del polimorfismo.
‫Quindi abbiamo un'Audi, che è di tipo automobilistico.
‫Abbiamo una BMW, che è anche un'auto tipo, e abbiamo questa classe base, che è l'auto.
‫E ora possiamo andare avanti e creare più oggetti di questo.
‫Ora, avrà molto più senso non appena ci arriveremo.
‫Quindi andiamo avanti e creiamo una nuova variabile chiamata auto, che sarà una nuova lista di auto.
‫E anche se questo è un elenco di auto, quindi della classe auto, possiamo creare tutto questo e la BMW è qui.
‫Quindi può solo creare, diciamo, un'Audi, che è blu ed è una A4.
‫Poi abbiamo una nuova BMW, che è, diciamo, 250 CV e diciamo che è una macchina rossa ed è un tre.
‫Quindi questa è una parte del polimorfismo che puoi usare le sottoclassi invece della classe base o le classi
‫guida invece della classe base.
‫Uno che lavora, ad esempio, con le liste o in generale e per generale, vedrai cosa intendo.
‫Quindi quello che farò è eseguire un ciclo per ogni ciclo, che controllerà tutte le mie auto nell'elenco delle
‫mie auto, e scriverà semplicemente qualcosa come riparazione auto o chiamerà un metodo di riparazione .
‫Va bene, allora chiamiamolo o eseguiamo quello.
‫Ma prima di farlo, dobbiamo consolare Don read key.
‫Perché altrimenti, il nostro programma si chiuderà semplicemente.
‫Quindi ci sei.
‫L'auto è stata riparata, l'auto è stata riparata.
‫Quindi ora sta chiamando il metodo dell'auto qui, che proprio questa qui auto è stata riparata.
‫Quindi non chiama questo metodo di riparazione e nemmeno chiama questo metodo di riparazione, che è stata riparata
‫la BMW o qui.
‫In realtà è già qui per cui dovrebbe essere l'audio, anche se è stato riparato.
‫Allora perché chiama il metodo di riparazione della nostra macchina e non quello della BMW?
‫E l'audio ha a che fare con due cose.
‫Quindi uno di questi è che abbiamo questa riparazione del vuoto, che non è virtuale.
‫Quindi, se lo rendiamo virtual void repair, quello che ora possiamo fare è, ad esempio, qui possiamo sovrascriverlo in modo da
‫poter sovrascrivere il metodo di riparazione.
‫Quello che farà è se eseguiamo di nuovo il codice.
‫Vedremo che l'auto è stata riparata, quella è la nostra Audy, la prima, e poi è stata riparata la BMW M3 e questa
‫è la seconda.
‫E questo perché la nostra classe BMW qui ha sovrascritto il metodo di riparazione, quindi possiamo semplicemente prendere questo metodo, renderlo
‫virtuale e questo ci consente di sovrascriverlo nelle classi di guida.
‫Ed è quello che abbiamo fatto qui.
‫Quindi ora che sono i due aspetti del polimorfismo, quindi il polimorfismo al lavoro, uno, un'Audi e VW, Porche,
‫qualunque classe diversa tu voglia avere, può essere usato ovunque sia prevista un'auto.
‫Quindi ogni volta che stanno ereditando da questa classe qui, dalla nostra classe di auto qui, questa, possiamo semplicemente usarla al suo
‫posto.
‫E poi il secondo aspetto del polimorfismo è che il metodo virtuale può essere invocato su ciascuna delle
‫classi guida, non sulla classe migliore.
‫Quindi è qualcosa che abbiamo fatto con la BMW e ora possiamo fare la stessa cosa con la nostra Audi qui.
‫Quindi ho intenzione di rendere anche questo un override.
‫Annulla la riparazione del voto.
‫Ora eseguiamolo di nuovo.
‫E ora entrambi dovrebbero mostrare i loro marchi e i loro modelli.
‫Quindi vediamo l'Audi, una quattro e una BMW e tre sono state riparate.
‫C'è un'altra cosa sul polimorfismo, però.
‫Quindi, se vuoi nascondere i migliori membri della classe con nuovi membri, puoi usare la nuova parola chiave.
‫Quindi diciamo che abbiamo questo metodo di visualizzazione dei dettagli di Voit nella nostra auto di classe, che è solo un vuoto.
‫Non è un vuoto virtuale.
‫E ora, se vorrei sovrascriverlo, quindi non sovrascriverlo nel senso che abbiamo fatto bene qui con quello
‫di sovrascrittura.
‫Ma in realtà voglio usare questo metodo invece ogni volta che sto usando una BMW e non nel senso di sovrascrivere quello
‫vecchio, ma semplicemente nascondendo quello dall'auto e usando i dettagli dello spettacolo.
‫Da allora, posso usare la nuova parola chiave.
‫Quindi basterà dire semplicemente, OK, i dettagli di questo spettacolo hanno la priorità sull'auto, i dettagli dello spettacolo.
‫Quindi non lo sta sovrascrivendo, ma gli sta dando una nuova priorità.
‫Quindi ora come dovrei mostrare questo metodo di visualizzazione dettagliato o utilizzare per mostrare il metodo?
‫Bene, creiamo una nuova BMW B e W che tre, che sarà una nuova auto BMW con duecento
‫cavalli.
‫Facciamolo nero e poi è un modello Z tre.
‫E poi creiamo anche un'Audi, un'Audi, una tre.
‫Sarà una nuova festa con, diciamo, 100 cavalli e questa è verde, un colore molto strano per
‫un'auto.
‫E poi hai un modello a tre qui.
‫Ora, eseguiamo la BMW e mostriamo il metodo dei dettagli qui.
‫E lo stesso per l'Audi Audi, uno spettacolo a tre dita, dettagli.
‫Quindi eseguiamolo.
‫E vedi HP, duecento colori neri, HP, cento colori verdi.
‫Quindi, come vedi, chiama il metodo dei dettagli del car show e non chiama quello della BMW.
‫E questo perché l'abbiamo creata come un'auto.
‫Ma è una nuova BMW come macchina.
‫Quindi, se facciamo la stessa cosa ora, andiamo avanti e creiamo una b m w cinque, che
‫non sarà un'auto, ma questa volta è una b m w nuova BMW.
‫E questo, diciamo, ha trecentotrenta cavalli.
‫È bianco ed è un M cinque.
‫Quindi ora se chiamo questo V.
‫Vuoi tu e il metodo dei dettagli con cinque punti, mi mostrerà anche il marchio in modo
‫che siamo marchio BMW, HP 330, colore bianco e i primi.
‫Quindi quelli qui, dovevano anche mostrare il metodo di dettaglio, ma usano quello dell'auto e ora quello
‫della BMW usa quello della BMW.
‫Quindi, anche se abbiamo detto nuova BMW, usiamo ancora la classe auto per creare un oggetto auto di ciò che
‫è.
‫Internamente, una BMW, ma chiamiamo i metodi dell'auto e non i metodi BMW, solo se andiamo avanti
‫e creiamo come BMW chiamiamo il nuovo metodo.
‫Quindi questo nuovo qui dice semplicemente, OK, se crei un oggetto di me, allora vai avanti e scrivilo come nuovo.
‫Se non lo fai, allora vai avanti e usa semplicemente il metodo delle auto o della classe delle auto.
‫La classe base, praticamente.
‫Ma cosa succede se voglio chiamare il metodo mostra dettagli della mia classe di basso sul mio oggetto BMW, allora posso fare
‫quanto segue.
‫Posso andare avanti e creare un'auto, che chiamerò l'auto B sarà una BMW, M5,
‫ma sarà un'auto.
‫Quindi qui sto usando il casting in modo da lanciare la mia BMW in un'auto e ora posso andare avanti e usare l'auto.
‫B che mostrano i dettagli della mia BMW M5.
‫O della mia macchina, tanto che siamo di nuovo in tre su 30 colore bianco.
‫Quindi questa è la nostra BMW, M5 qui.
‫Quindi perché dovresti usare questo approccio di nasconderti e usare questa nuova parola chiave qui sui tuoi membri?
‫Bene, lo useresti se vuoi che il tuo membro derivato abbia lo stesso
‫nome di un membro in una classe base, ma non vuoi partecipare a un'invocazione virtuale.
‫Quindi è quando usi questa nuova parola chiave che abbiamo visto qui.
‫Altrimenti, se vuoi sovrascriverlo, puoi semplicemente usare questo approccio di sovrascrittura qui o semplicemente sovrascrivere la
‫parola chiave nella tua dichiarazione del metodo.
‫Tutto bene.
‫Quindi è già qualcosa.
‫Polimorfismo.
‫Nel prossimo video, vedremo come possiamo evitarlo.
‫Quindi, se non lo desideri, un metodo può essere sovrascritto.
‫C'è un modo per farlo nella nostra classe base.
‫Allora ci vediamo al prossimo video.