‫In questo video imparerai a conoscere l'ereditarietà in Do diesis o nella programmazione in generale, cercherò
‫di mantenerlo super semplice perché può diventare piuttosto complicato se lo guardi, perché c'è molto
‫da fare.
‫Ma lo semplificherò il più possibile, OK, perché l'idea di ereditarietà è davvero la
‫riutilizzabilità del codice.
‫E questo ci consente non solo di ridurre il nostro codice, ma ridurre il codice di altri sviluppatori
‫o anche di altri spazi dei nomi direttamente senza dover scrivere molto codice manualmente ancora e ancora e ancora,
‫come c'era prima.
‫E questo riduce davvero il codice ripetuto o ridondante.
‫OK, quindi l'idea di ereditarietà è fondamentalmente un concetto fondamentale della programmazione orientata agli oggetti.
‫Consente di definire una classe figlia che riutilizza o eredita, estende o modifica il comportamento di una classe
‫padre.
‫La classe i cui membri vengono ereditati è chiamata classe base.
‫La classe che eredita i membri della classe base è detta classe derivata.
‫OK, quindi cosa significa?
‫Bene, in termini semplici, se hai più di una classe con lo stesso codice o funzionalità,
‫ma differisce leggermente, possiamo effettivamente mettere questo codice ripetuto o ridondante in una classe separata e quindi fare
‫in modo che la nostra classe erediti da essa.
‫Questo codice può essere la funzionalità del metodo, per così dire, o le proprietà, che sono gli attributi delle
‫nostre classi.
‫Quindi diamo un'occhiata a un esempio e quindi creo questo nuovo progetto qui, che chiamo Inheritance Demel.
‫Tutto bene.
‫Quindi andiamo avanti e guardiamo questo esempio.
‫Quindi di solito quando lavori con più classi, vai avanti e crei una nuova classe qui.
‫Ok, allora facciamolo anche qui.
‫Potresti, ovviamente, creare la classe nello stesso file, ma non è una buona pratica.
‫Quindi andiamo avanti e chiamiamo questa radio di classe.
‫Tutto bene.
‫Quindi ecco la classe di annunci radiofonici.
‫E ora abbiamo questa lezione di radio, che ha lo stesso nome.
‫OK, quindi entrambe le classi, il programma chiede dove abbiamo il nostro metodo principale, che è il punto di
‫partenza della nostra applicazione e la classe radio sono nella stessa forma.
‫Quindi faremo due lezioni.
‫Uno sarà la radio e l'altro sarà la TV.
‫Supponiamo di avere un paio di proprietà.
‫Quindi, ad esempio, un booleano che determina lo stato della radio è accesa e quindi la marca
‫della radio, quindi è una Panasonic o qualsiasi altra marca ci sia.
‫E poi abbiamo un semplice costruttore qui.
‫Quindi dovresti assolutamente avere una comprensione dei concetti fondamentali delle classi.
‫Se vuoi comprendere appieno l'ereditarietà, generalmente è qualcosa che consiglierei di capire prima di
‫arrivare all'ereditarietà perché si costruisce uno sopra l'altro.
‫OK, quindi voglio avere due metodi perché questa sarà fondamentalmente la funzionalità.
‫Quindi uno accenderà la radio, sarà il metodo di accensione e l'altro sarà il metodo
‫di spegnimento.
‫Quindi puoi accendere e spegnere la radio o accenderla usando questi due metodi.
‫E poi avremo un altro metodo che ci permetterà di ascoltare la radio.
‫OK, quindi abbiamo questo metodo qui chiamato Listen Radio e controllerà.
‫La radio è accesa in questo momento?
‫Quindi è sulla proprietà qui, questo booleano, sarà davvero vero?
‫E se questo è vero, allora possiamo ascoltare la radio e il modo in cui indicheremo che stiamo
‫ascoltando la radio sarà solo con questa dichiarazione sulla linea rossa della console che dice ascoltare la radio
‫e altrimenti, stamperemo questo messaggio di errore che dice che la radio è spenta.
‫Accendilo prima.
‫OK, quindi prima di poterlo ascoltare, dobbiamo accenderlo.
‫Tutto bene.
‫Quindi questa è la nostra radio adesso.
‫Ora, immagina di avere un'altra classe, che sarà.
‫La tv.
‫OK, quindi andiamo avanti e creiamo una nuova classe, quindi puoi andare qui per aggiungere e quindi aggiungere classe e
‫dare un nome a questa classe.
‫Lo chiamerò TV.
‫E ora in questa classe, andrò avanti e avrò un paio di proprietà simili a quelle che avevamo qui.
‫Quindi, in pratica, avrò anche gli stati se è acceso o spento.
‫Quindi aggiungiamo queste due proprietà qui.
‫Quindi avrò un semplice costruttore che mi permette di impostare quei valori quando creo un nuovo oggetto
‫di TV.
‫Quindi qui è attivo così come String Brand, che imposta le proprietà.
‫Quindi dovrò individuare altri metodi in modo da poter accendere e spegnere la TV, in modo simile a quello che ho fatto con
‫la radio, quindi posso praticamente copiare questo codice.
‫Ma sarà leggermente diverso perché abbiamo avuto i commenti che dicevano radio qui, ma ora questa sarà
‫TV.
‫Quindi questo metodo accenderà la TV e questo la spegnerà o la spegnerà.
‫OK, allora abbiamo solo bisogno di avere un altro metodo che ci permetta di guardare la TV e che faccia qualcosa di molto simile a
‫quello che fa la nostra radio.
‫Ci permette di guardare la TV solo se la TV è accesa.
‫Se è spento, dovremo prima accendere la TV.
‫OK, ora abbiamo queste due classi e se le guardi, sono terribilmente simili.
‫Quindi ci sono molte cose che sono esattamente le stesse, fondamentalmente perché questa proprietà è attiva così come
‫questo marchio.
‫Loro sono la stessa cosa.
‫Li abbiamo in entrambe le classi.
‫Quindi fondamentalmente abbiamo codice ridondante.
‫Dobbiamo copiare e incollare un mucchio di codice ed è più o meno lo stesso.
‫Quindi, come possiamo fare in modo che non dobbiamo copiare e incollare molto codice e riscrivere codice e fondamentalmente avere
‫codice ridondante?
‫Bene, questo è il punto centrale del concetto di eredità.
‫Quindi l'eredità viene in soccorso.
‫Possiamo risolvere questo problema creando un dispositivo elettrico di terza classe.
‫Questo conterrà tutte le funzionalità e le proprietà condivise di un dispositivo elettrico che abbiamo.
‫Quindi diamo un'occhiata a quelli.
‫Quali sono quelli che abbiamo che sono uguali?
‫Quindi quali sono le proprietà che sono le stesse per la nostra TV e per la radio?
‫Bene, nel nostro caso sono tutte le proprietà, in realtà, ma non devono essere tutte in questo
‫caso.
‫Sarà perché non abbiamo più proprietà.
‫Ma le due proprietà che abbiamo lì saranno le stesse.
‫So is on e Brent sono entrambe proprietà che esistono in TV e in radio.
‫Quindi la nostra nuova classe dovrebbe avere queste due proprietà.
‫E poi abbiamo i due metodi che ci permettono di accendere la TV e la radio o spegnere la radio
‫e anche la TV.
‫OK, quindi per te, un piccolo esercizio se vuoi provare questo, perché presumo che tu non sia un ruolo e un programmatore
‫a quel punto, ma ti sentirai molto più sicuro quando lo proverai.
‫Quindi vai avanti e crea una classe che abbia tutte queste proprietà e questi metodi che possiamo mostrare tutto ciò che è condiviso
‫tra le due classi, creali in una classe separata e chiama questa classe dispositivo
‫elettrico.
‫In realtà, puoi chiamarlo come vuoi, ma lo chiamerò dispositivo elettrico come tale.
‫OK, quindi spero che tu pubblichi il video e l'abbia provato, quindi creerò una nuova classe e, a
‫proposito, ovviamente, vedi che puoi usare il controllo scorciatoia Casey.
‫Quindi facciamolo in questo caso, controllo, vedi?
‫E questo aprirà questa finestra qui e mi permetterà di cambiarla in elettrica.
‫Dispositivo così, e ora questo vetro avrà le proprietà che condividiamo tra le altre due classi, quindi le
‫mettiamo qui, il booleano che determina lo stato del dispositivo elettrico, è acceso
‫o no?
‫E poi la marca del dispositivo.
‫E poi, ovviamente, abbiamo bisogno di un costruttore.
‫Quindi il dispositivo elettrico è acceso.
‫E Brent e, infine, abbiamo le funzionalità che sono i metodi.
‫Quindi, ogni volta che hai funzionalità, le metti in metodi e la funzionalità è accendere
‫o spegnere qualcosa.
‫Quindi, ogni volta che si verifica un'azione con la tua classe o con l'oggetto che stai utilizzando,
‫dovrai utilizzare i metodi.
‫Di nuovo, è quello che stiamo facendo qui.
‫Quindi stiamo usando un metodo per accendere qualcosa, in questo caso, il dispositivo elettrico e per spegnerlo
‫o accenderlo e spegnerlo.
‫Ok, quindi è fondamentalmente quello che stiamo facendo qui.
‫Quindi ora che abbiamo le nostre proprietà e metodi di condivisione in una classe, facciamo
‫in modo che l'altra classe delle classi TV e radio erediti da questa classe o, in altre parole, estenda questa classe.
‫OK, quindi questo è solo un termine diverso che puoi usare qui.
‫Quindi la nostra TV e la nostra radio ora estenderanno la classe dei dispositivi elettrici.
‫Quindi come possiamo farlo?
‫Bene, cominciamo con la radio, perché la TV sarà poi per te una piccola
‫sfida dove dovrai farcela da solo.
‫Quindi qui hai usato i due punti e quindi il nome della classe che vuoi ereditare dal dispositivo elettrico
‫è la classe che erediterà la radio ora da dove la nostra radio estenderà la funzionalità della
‫classe del dispositivo elettrico.
‫OK, quindi Colon e poi il nome della classe che vuoi estendere e ciò che è
‫importante, questo è, ovviamente, che questa classe deve essere nello stesso spazio dei nomi o devi aggiungere lo spazio dei nomi qui
‫sopra.
‫Quindi nel nostro caso, non stiamo usando nessuno di questi.
‫Usiamo solo il sistema.
‫Ma poiché siamo nello stesso spazio dei nomi, quindi la classe dei dispositivi elettrici è nello stesso spazio dei nomi di
‫radio e TV, possiamo farlo in questo modo.
‫Ma ora possiamo vedere che il nostro Boliano ha un avvertimento qui.
‫Quindi quando passi con il mouse sopra il tuo io. D. , quindi Visual Studio ti dirà che Radio Dot è al massimo.
‫I dispositivi elettrici membri ereditati sono in uso.
‫La nuova parola chiave se si intendeva nascondere.
‫Quindi fondamentalmente stiamo usando lo stesso nome di proprietà e qui vuoi evitarlo perché hai questa proprietà, per così
‫dire, già perché la stai ereditando dal dispositivo elettrico.
‫Quindi ora puoi semplicemente nasconderlo o sovrascriverlo con questo che hai creato qui.
‫Se vuoi usare qualcosa con lo stesso identico nome, ma dovrebbe comportarsi in qualche modo in modo diverso, puoi
‫farlo, anche se questa è una buona pratica dipende necessariamente dal caso d'uso, ovviamente.
‫Quindi questo perché ora la classe radio contiene due proprietà con lo stesso nome che stiamo nascondendo o coprendo.
‫Questo è un termine diverso qui, le proprietà che abbiamo ereditato dalla classe dei dispositivi elettrici.
‫Quindi rimuoveremo il codice ridondante che non ci serve più.
‫Quindi liberiamoci di quello.
‫E, naturalmente, il codice ridondante non sta solo assegnando o creando le proprietà, ma anche avere questi
‫metodi qui.
‫Quindi liberiamoci anche di quelli.
‫Ora, abbiamo un altro errore che appare qui, ed è questo costruttore di radio che sembra avere un
‫problema.
‫Dice che non c'è argomento dato che corrisponda al parametro formale richiesto è sul dispositivo elettrico,
‫corda dell'arco del dispositivo elettrico.
‫Allora, cos'è questo dispositivo elettrico, quella corda dell'arco del dispositivo elettrico?
‫Bene, è questo qui.
‫È questo costruttore.
‫Poiché tutte le proprietà provengono dalla classe base e la nostra classe base contiene un costruttore, possiamo usare la
‫parola chiave base per passare la nostra classe base, i suoi argomenti del costruttore, perché queste sono le uniche due proprietà che
‫abbiamo e il nostro costruttore nella classe figlia lo farà avere un corpo vuoto.
‫OK, quindi è un gran parlare.
‫Ma fondamentalmente ciò significa che il nostro costruttore di radio non è più complesso di
‫quello di base, possiamo semplicemente andare avanti e dire base.
‫Ed ecco su e Brent.
‫In questo modo e poi non abbiamo bisogno di un corpo per la nostra radio, quindi questo costruttore
‫fondamentalmente dirà che è attivo così come le proprietà del marchio che vengono passate all'oggetto radio
‫che quando viene creato, lo passa al dispositivo elettrico costruttore, perché fondamentalmente la nostra radio eredita da un dispositivo
‫elettrico e quindi possiamo farlo.
‫Quindi possiamo semplicemente passarlo al dispositivo elettrico.
‫E ciò che farà è sostanzialmente impostare le proprietà su e stampare in base ai valori che vengono
‫passati.
‫OK, quindi questo è.
‫La parte più complicata, ma il potere qui è davvero che non dobbiamo creare codice ridondante
‫e, beh, il lavoro è fatto per noi, quindi ci fa davvero risparmiare un sacco di tempo e anche di scrivere codice.
‫In un esempio successivo, vedremo come utilizzare il corpo del costruttore nella classe figlio per
‫inizializzare le proprie proprietà univoche, per enfatizzare rapidamente la classe radio qui.
‫È la nostra classe per bambini.
‫OK, quindi la classe ereditaria e il dispositivo elettrico sono la nostra classe genitore, quindi la classe base.
‫Quindi erediteremo così la nostra radio erediterà dal dispositivo elettrico, quindi il bambino erediterà dal genitore, fondamentalmente i tuoi genitori hanno un
‫certo DNA e tu hai lo stesso DNA, ma ne avrai un po' di più,
‫per così dire.
‫Quindi è così che potresti pensarci.
‫Tutto bene.
‫Quindi ora una piccola sfida per te.
‫Regola la classe TV in modo che erediti anche dal dispositivo elettrico.
‫Quindi positivamente.
‫E prova così, per favore.
‫Tutto bene.
‫Spero che tu l'abbia provato.
‫Quindi, prima dobbiamo aggiungere il dispositivo elettrico Polan, quindi possiamo eliminare il codice ridondante.
‫Quindi il codice ripetitivo, perché lo abbiamo già nella nostra classe base.
‫E questo significa che possiamo usarlo anche direttamente nella nostra classe TV.
‫E ora possiamo anche aggiustare questo qui, dicendo che passeremo i dati alla nostra classe base.
‫E, naturalmente, non è necessario impostarlo anche qui.
‫Ma come ho detto nell'esempio successivo, vedremo come possiamo ancora usare il corpo in modo efficiente.
‫E questo sarà fondamentalmente.
‫Ora, possiamo semplicemente andare avanti al nostro programma, file CSS e effettivamente controllare il nostro codice qui.
‫E controllando il nostro codice, intendo creare oggetti della nostra radio e testarla.
‫Quindi andiamo avanti.
‫Un oggetto radiofonico.
‫Lo chiamerò sulla mia radio e questo sarà un nuovo oggetto radio.
‫Certo, devo passare se è attivo.
‫Quindi sarò spento all'inizio e dirò che sarà realizzato da Sony.
‫Quindi il marchio sarà Sony.
‫Ora posso accedere alle proprietà.
‫Puoi vedere qui solo per Eitam, le proprietà della mia radio, che è il marchio e che
‫è di proprietà e posso anche accedere ai suoi metodi.
‫Quindi accendi, spegni.
‫Ascolta, radio.
‫E poi puoi anche vedere che ci sono alcuni metodi che non abbiamo mai creato
‫noi stessi che sono lì fin dall'inizio perché ogni classe eredita dalla classe dell'oggetto e la classe dell'oggetto ha
‫un metodo a due stringhe e un tipo get get code e metodo uguale.
‫OK, quindi questi metodi, sono lì per ogni singola classe che stai creando in
‫C Sharp perché fondamentalmente non lo vediamo, ma internamente eredita dalla classe dell'oggetto in questo modo, quindi ogni classe eredita dalla
‫classe dell'oggetto e ecco perché abbiamo questi metodi differenti.
‫Ma ora accendiamolo prima di tutto.
‫Quindi qui, accendi.
‫Questo accenderà la nostra radio e ora possiamo ascoltare la nostra radio, quindi ascolta la mia radio punto ascolta radio.
‫Ora eseguiamo questo, e questo ci permetterà di ascoltare la nostra radio.
‫Quindi ecco che stiamo ascoltando la radio, quindi accendiamo la radio, ora non accendiamo la radio
‫e ascoltiamo la radio e dirà radio spenta.
‫Accendilo prima.
‫Va bene, quindi ora.
‫Facciamo la stessa cosa con la nostra TV.
‫Andiamo avanti e creiamo un oggetto TV.
‫Lo chiamerò sulla mia TV, che sarà un nuovo oggetto TV, e anche questo verrà spento e
‫sarà un dispositivo Samsung.
‫E ora andiamo avanti e usiamo la mia TV, che si accende per accenderla.
‫E poi si chiama il metodo per guardare la TV.
‫Ad esempio, ora eseguiamo questo e vedremo che ora la nostra TV è accesa e la stiamo guardando mentre
‫ascoltiamo la radio.
‫Quindi un bel compito lì.
‫Ma fondamentalmente il nostro codice fa quello che vogliamo.
‫Quindi ora vedete che chiamiamo il metodo di accensione sia per la radio che per la TV, anche se
‫se guardiamo alla classe TV, non ha questo metodo.
‫Quindi non ha l'interruttore.
‫Bene, accendi o spegni il metodo.
‫Neanche la radio ha questi metodi, ma è perché stanno ereditando dal dispositivo
‫elettrico, che ha quei metodi che si accendono e si spengono, che possiamo usarli.
‫Quindi fondamentalmente qui stiamo usando il metodo della classe base.
‫Quindi qui, metodo della classe base.
‫E qui stiamo usando il metodo della classe figlio.
‫Quindi il metodo di attivazione viene dal genitore plus e il metodo guarda la TV è dal bambino plus.
‫Quindi ora possiamo creare il codice che è unico per la classe e non è ripetitivo, per così dire, direttamente nella classe
‫TV così come nella classe radio.
‫Ma tutto ciò che è lo stesso e sarà rilevante per i dispositivi elettrici in generale è qualcosa
‫che possiamo creare qui.
‫C'è molto di più sull'ereditarietà e, naturalmente, esamineremo tutto questo in questo
‫capitolo.
‫Allora ci vediamo al prossimo video.