‫Bentornato e questo video, è tutto sull'ereditarietà, e andremo avanti e creeremo
‫una classe che chiamerò semplicemente post, quindi una nuova classe e sarà un post.
‫Quindi immagina che sia un post sui social media, come un post su Twitter o un post su Facebook o qualsiasi tipo di
‫post.
‫E l'idea è che voglio ereditare dal post e voglio creare qualcosa come un post con immagini o in seguito un
‫post con video.
‫E questo genere di cose ci permetterà di capire un po' meglio il concetto di eredità.
‫E puoi applicarlo a oggetti diversi in situazioni diverse in futuro.
‫Quindi, prima di tutto, un post ha una variabile, che renderò statica privata nell'ID del post corrente.
‫Quindi questo sarà un campo di quel post ed è statico.
‫Quindi è disponibile anche al di fuori di questo post e verrà creato una volta avviata l'applicazione.
‫Destra.
‫Quindi quello che possiamo fare è, prima di tutto, creare alcune proprietà.
‫E ora l'idea alla base delle proprietà, come sai, è che ti danno qualche informazione in più
‫sull'oggetto.
‫Destra.
‫Quindi nel nostro caso, se creo un oggetto di post, ci sono alcune informazioni che vogliamo davvero avere.
‫Ad esempio, vogliamo conoscere l'ID così come un edman, come programmatore, non tanto quanto un utente e utente non
‫è interessato all'ID del post, ma come amministratore o come il programma dovresti essere perché ogni post
‫dovrebbe essere identificato e dovrebbe avere un ID univoco.
‫Quindi avremo ID, abbiamo bisogno di un titolo.
‫Quindi, ad esempio, il Post ha un titolo, forse una descrizione o un testo, qualcosa del genere.
‫Quindi dobbiamo sapere chi ha inviato quel post e se dovrebbe essere pubblico o meno.
‫Naturalmente, c'è molto altro da sapere sul post, quindi ci possono essere molte più proprietà
‫nel post, ma per ora lo manterremo semplice.
‫Quindi creerò le proprietà protette qui.
‫E non abbiamo ancora utilizzato le proprietà protette.
‫Ma alla fine, proteggere significa che può essere utilizzato solo da questa classe, ma da una classe successiva e da qualsiasi classe
‫derivata.
‫Quindi classi che derivano da post.
‫Quindi vado avanti e creo il primo, che sarà l'ID.
‫Quindi int i d e useremo get e set.
‫Poi un'altra proprietà, quindi userò una prop qui e dovrebbe essere una stringa
‫e la chiamerò title e come prima, dovrebbe essere protetta, quindi la nostra proprietà e userò stringa di nuovo
‫e questo verrà inviato per nome utente.
‫Allora chi l'ha mandato?
‫E sarà anche protetto.
‫E infine, una proprietà chiamata è pubblica.
‫Quindi è un booleano perché può avere solo due valori.
‫Quindi o è pubblico o non è pubblico.
‫Quindi abbiamo semplicemente queste proprietà.
‫Destra.
‫Quindi ora creiamo un costruttore predefinito e c'è qualcosa da sapere sul costruttore predefinito se derivato, se
‫una classe bozza non richiama esplicitamente un costruttore di clausola di base, il costruttore predefinito viene
‫chiamato implicitamente.
‫Ecco perché ne creiamo uno qui.
‫Quindi creiamo un post pubblico.
‫E ora quel post andrà bene, perché qui non otteniamo alcun parametro.
‫Verrà definito o imposteremo qui i valori.
‫Quindi sarà zero.
‫Quindi il titolo è, ad esempio, il mio primo post o magari con spazi vuoti.
‫Primo post del genere, poi è pubblico?
‫Beh, diciamo vero perché vogliamo vederlo e poi inviarlo per nome utente.
‫Ben inviato da me.
‫Quindi il convenuto in questo caso.
‫Quindi, ogni volta che creiamo un post ora, sarà solo questo post qui.
‫Quindi sarà il mio primo post.
‫In quel momento voglio avere un'altra istanza, un costruttore che ha diversi parametri.
‫Quindi voglio creare post in cui posso effettivamente definire queste cose.
‫Non definisco l'ID, ma posso definire il titolo.
‫Posso dire se è pubblico e se è stato inviato da quale nome utente.
‫Quindi puoi immaginarlo.
‫Supponiamo che tu scriva un piccolo programma di social media e desideri avere la capacità di pubblicare e
‫quindi devi inviare tali informazioni ogni volta che crei un post.
‫Quindi l'utente crea un post e ottiene un ID definito automaticamente, quindi ottiene un definito automaticamente dove ottiene un titolo
‫definito in base a ciò che l'utente ha inserito.
‫È pubblico in base a ciò che l'utente ha selezionato, indipendentemente dal fatto che abbia deciso di renderlo pubblico o meno,
‫e viene inviato da lui.
‫Quindi sono solo i dati che vengono forniti quando viene creato ogni post.
‫Quindi ora creiamo un costruttore di istanze che abbia tre parametri.
‫Quindi creerò un post pubblico e qui userò la stringa title bool is public e la stringa
‫send by username.
‫E qui imposterò l'ID e per questo avrò bisogno di qualcosa.
‫Quindi ora lo imposterò a zero.
‫Ma avrò bisogno di un metodo aggiuntivo che creerà sempre un nuovo ID per ogni post.
‫Vedremo come funziona in un secondo.
‫Quindi questo titolo sarà il titolo inviato.
‫Il mio nome utente verrà inviato tramite nome utente con una lettera non conservata qui e questo che
‫sarà pubblico sarà pubblico e non la proprietà, ma questo parametro.
‫Quindi ora ho detto che non voglio che sia zero.
‫L'idea dovrebbe essere unica.
‫Quindi il modo migliore è creare un metodo che sarà protetto e si chiama get next.
‫Quello che farà è semplicemente restituire l'ID successivo, il che significa l'ID del post corrente e qui
‫incrementiamo prima.
‫Quindi ogni volta che viene chiamato, si incrementerà di uno.
‫Quindi questo qui, questo ID post corrente sarà aumentato di uno.
‫Quindi ora invece di impostare zero qui, chiameremo il prossimo ID o otterremo il metodo ID successivo.
‫Ora cos'altro ti piacerebbe avere in un programma del genere in cui puoi pubblicare qualcosa mentre immagino la
‫capacità di modificare un post?
‫Quindi per ora abbiamo creato un post e saremmo piuttosto scontenti se non potessimo cambiare quel post.
‫E beh, è qualcosa che accade davvero.
‫E penso che Snapchat crei un'immagine e poi è lì, puoi modificare quell'immagine.
‫Non sono sicuro che tu possa modificare il testo, ma qui vogliamo essere in grado di modificare il testo
‫in modo da creare un nuovo metodo, aggiornamento public void e che dovrebbe includere il titolo.
‫E la ciotola è pubblica perché se ci pensi, cosa dovrebbe poter aggiornare l'utente?
‫Non dovrebbe essere in grado di identificare l'ID, né dovrebbe essere in grado di aggiornare il nome utente perché è stato inviato da
‫lui.
‫Quindi ha un nome utente e non dovrebbe avere impatto sull'aggiornamento di un post.
‫Quindi qui, aggiorneremo solo il post e significa che cambieremo solo il titolo e cambieremo il booleano,
‫che è se è pubblico o meno.
‫E qui diciamo semplicemente che questo titolo sarà il titolo e questo che è pubblico sarà pubblico,
‫quindi significa come lo abbiamo qui.
‫Un post post è un progetto mentre questa classe è un progetto di qualsiasi istanza di post.
‫Quindi, ogni volta che pubblichiamo qualcosa che è quel sé, quell'istanza è il post e se ne cambiamo il titolo, cambiamo
‫il titolo di quel post specifico.
‫E se cambiamo, che sia pubblico o meno, cambiamo la pubblicità di quel post specifico.
‫OK, questo ci permette di aggiornare il titolo e la sua pubblicità di un post esistente.
‫Quindi ora il prossimo che voglio creare è un metodo virtuale di override di due stringhe ereditate
‫dal sistema quell'oggetto.
‫Quindi system, quell'oggetto è una classe che arriva qui in system.
‫Quindi possiamo usarlo.
‫È all'interno di C diesis e possiamo semplicemente usarlo.
‫E c'è un metodo chiamato a string o in realtà da lì possiamo chiamare il metodo a due stringhe.
‫Quindi system, l'oggetto ha un metodo a due stringhe e vogliamo sovrascriverlo perché
‫ogni singola classe, quindi anche la nostra classe, sta ereditando da quella classe di oggetti.
‫Quindi system, quell'oggetto è una classe da cui possiamo ereditare.
‫Quindi qui, quell'oggetto, ad esempio, possiamo ereditare da quello, o in realtà ogni classe eredita da quello.
‫Quindi ora quello che possiamo fare è sovrascrivere uno dei suoi metodi.
‫Quindi public override string e due string, come puoi vedere, lo propone già.
‫Quindi dice che restituisce la stringa che rappresenta l'oggetto corrente che qualcosa che si trova all'interno della classe
‫dell'oggetto.
‫E come puoi vedere, c'è qualcosa chiamato Return Bayes da stringere.
‫Quindi la classe base ha un metodo a due stringhe.
‫E se lo facciamo, allora questo non significherà praticamente nulla perché useremo comunque
‫il metodo delle due stringhe della classe base.
‫Ma possiamo cambiarli in modo da poterci regolare invece di restituire qualunque cosa ritornerebbe la classe base.
‫Vogliamo fare le nostre cose.
‫Quindi useremo la stringa in quel formato per formattare una stringa, che avrà determinate
‫informazioni.
‫Quindi sarà l'idea, sarà il titolo e chi lo trasmetterà.
‫Quindi userò questo tipo di informazioni in questo modo.
‫Quindi sarà questo ID.
‫Quindi l'idea poi questo il titolo e infine questo quello inviato dal nome utente.
‫Quindi questo è ciò che tornerà.
‫Quindi, ogni volta che usiamo string, non restituirà semplicemente alcune informazioni sull'oggetto, ma le
‫restituirà nel formato standard o nel nostro formato che abbiamo creato.
‫Quindi questo è il nostro formato, giusto.
‫Così.
‫Creiamo un oggetto di quella classe, quindi andiamo avanti nel nostro programma e poi qui creiamo un
‫post.
‫Quindi il post uno è un nuovo post e qui posso inserire alcune informazioni dove posso lasciarlo.
‫Quindi, se lo lascio, questo è il costruttore predefinito che verrà chiamato.
‫Quindi quello qui.
‫E se non lo faccio, verrà chiamato un altro.
‫Quindi diciamo che ho postato qualcosa.
‫Grazie per gli auguri di compleanno.
‫Quindi tutti mi hanno augurato buon compleanno.
‫Quindi dirò solo grazie mille e voglio farcela perché voglio che i miei amici lo vedano, quindi
‫dovrebbe essere pubblico.
‫E poi Dennis Pan, Utah, è quello che lo invia.
‫Naturalmente, potremmo avere una classe utente che si occupa di tutta la gestione e potremmo semplicemente controllare quali utenti hanno
‫effettuato l'accesso o altro.
‫Ma per ora, qui usiamo solo una stringa codificata.
‫Quindi sarà Dennis Bunnytown.
‫Quindi questo è un nuovo post che abbiamo qui.
‫E ora possiamo andare avanti e scriverlo sulla console.
‫Quindi s. W. e dirò post punto per stringa e qui, ovviamente, il post uno.
‫Quindi la nostra istanza postale.
‫Quindi questa è la nostra istanza postale.
‫E ho chiamato il post uno e scriverà qualcosa su una console.
‫E poiché vogliamo vedere di cosa si tratta, dobbiamo riallinearci qui.
‫Quindi vogliamo solo tenere aperta la console in modo da vedere cosa sta succedendo lì e che siamo, come
‫puoi vedere, uno, grazie per il compleanno, che è di Dennis Pennetta.
‫E questa è l'idea di questo post.
‫Quindi questo significa che il nostro post qui.
‫Questo ottiene un nuovo ID e il nuovo ID sarà zero più uno o più uno, il che significa che è
‫solo uno.
‫Ecco perché abbiamo questo qui.
‫Quindi l'idea è una, quindi pubblicare informazioni.
‫Ed ecco chi l'ha mandato allora, Pontotoc.
‫Quindi ora abbiamo un post e ora andiamo avanti e usiamo l'ereditarietà, perché finora, tranne forse per
‫queste due stringhe qui, in realtà non c'è eredità.
‫Quindi in realtà solo per te.
‫Quindi sai cosa ho detto prima, override del metodo virtuale del metodo a due stringhe ereditato
‫dal sistema quell'oggetto.
‫Quindi ora creiamo una nuova classe.
‫E quello saranno i post di immagini perché, beh, finora possiamo pubblicare solo testi certi anche se semplici, ma
‫in futuro vogliamo anche pubblicare immagini.
‫E ora quel post di immagine dovrebbe essere una lezione guida del nostro post di classe base perché questa classe qui è una classe molto
‫semplice e vogliamo andare avanti ed ereditare da essa.
‫Quindi, per ereditare da un'altra classe, usi Kolon e poi inserisci il nome della classe da cui
‫vuoi ereditare.
‫Quindi voglio ereditare dal post.
‫E ciò che mi consente è di utilizzare tutte le sue funzionalità.
‫È qualcosa di molto interessante perché ora può usare le sue proprietà.
‫Posso usare le sue variabili tranne che per il suo costruttore qui.
‫E sì.
‫Quindi andiamo avanti e facciamolo ed estendiamo il post dell'immagine.
‫Quindi, come sai, deriva da post e ora dovrebbe avere un'altra proprietà chiamata URL immagine e due
‫costruttori.
‫Quindi questo è quello che voglio aggiungere.
‫Quindi, prima, ho bisogno di una proprietà qui e sarà una stringa chiamata image.
‫Tu sei l che sarà l'immagine che url del post immagine.
‫Quindi diciamo che pubblichiamo qualcosa e c'è un'immagine, quindi è automaticamente o dovrebbe essere un post
‫di immagine e deve avere un URL dell'immagine.
‫Quindi una posizione in cui è archiviata quell'immagine che può essere sui nostri server o potrebbe essere semplicemente su Internet.
‫Quindi qualunque cosa ci sia, abbiamo questo bisogno di avere questo URL dell'immagine per un post di immagine.
‫Ora creiamo un post di immagine pubblica del costruttore molto semplice proprio come
‫quello.
‫Nient'altro.
‫Come puoi vedere, non c'è niente lì dentro.
‫Non voglio fare niente qui dentro.
‫E poi ho creato un altro post qui, o costruttore di post di immagini, ma questa volta voglio alcuni parametri qui.
‫Quindi sarà una stringa titolo stringa inviata tramite nome utente stringa immagine il tuo URL e in realtà tu sei L
‫e Boulle è pubblico, quindi voglio avere tutti quelli.
‫E ora nel post dell'immagine, voglio impostare di nuovo l'idea.
‫Questo ID di pensiero equivale a ottenere l'ID successivo ed è già qualcosa di abbastanza interessante.
‫Da dove diavolo viene questa idea e da dove viene questa idea di ottenere la prossima?
‫Bene, viene dal post.
‫Quindi stiamo prendendo questo metodo qui, questo metodo protetto.
‫Possiamo semplicemente chiamarlo qui.
‫Possiamo usarlo come se fosse nostro.
‫Quindi non abbiamo nemmeno bisogno di dire qualcosa come post dot get next ID.
‫Diciamo semplicemente di avere la prossima idea.
‫E la stessa cosa per questo ID.
‫Quindi ogni post con immagine ha un ID, la stessa cosa del post stesso.
‫E ora questo vale anche per il titolo.
‫Quindi il titolo sarà il titolo.
‫Quindi iniziano a inviare per nome utente verrà inviato per nome utente.
‫E infine, questo è pubblico sarà pubblico ora.
‫È davvero fantastico.
‫Possiamo usare quelle cose.
‫È fantastico.
‫E ora abbiamo anche la nostra proprietà, che è l'URL della nostra immagine, e l'abbiamo qui.
‫Quindi, ogni volta che viene creato un post con immagine, l'URL dell'immagine deve essere fornito come argomento.
‫Quindi diciamo che questo URL dell'immagine sarà l'immagine del tuo URL.
‫Quindi da una parte abbiamo quella ereditata dal post.
‫Quindi aggiungerò che qui e d'altra parte, abbiamo quello che è il nostro membro, quindi l'immagine della proprietà è un
‫membro di Image Post, ma non di post.
‫Ed è qualcosa di importante.
‫Quindi Post non sa di questo URL immagine e non importa, ma il nostro post immagine conosce tutte le
‫proprietà del nostro post.
‫Quindi questa è eredità.
‫Ora, una piccola cosa su questa immagine posta qui, quindi.
‫I costruttori sono obbligatori, quei due, perché nessuno dei due costruttori chiama una classe base.
‫Quindi non usiamo questa base non chiamando il costruttore della classe base e il costruttore predefinito
‫e la classe base viene chiamata implicitamente perché non la chiamiamo esplicitamente qui.
‫Quindi né in questo e non né in questo, quello della classe base, il costruttore.
‫Quindi questo costruttore predefinito deve essere chiamato o deve esserci un costruttore di base all'interno del nostro post.
‫Ecco perché l'ho creato, perché potresti esserti chiesto, perché ne abbiamo bisogno?
‫Perché è lì?
‫Bene, è necessario perché non lo chiamiamo esplicitamente attivo e verrà chiamato implicitamente.
‫Destra.
‫Grande.
‫Quindi è così.
‫Andiamo avanti nella nostra classe di programma e creiamo uno di quei post.
‫E ora creerò un post con immagine e sarà un nuovo post con immagine e in realtà ti darò il
‫nome.
‫Lo chiamerò Image Post one.
‫Sarà un nuovo post con immagini.
‫E darò un'occhiata alle mie scarpe nuove perché ho comprato delle scarpe nuove e sono dannatamente fantastiche.
‫E chi lo invia?
‫Bene, allora è super penetrabile.
‫Il ronzio sulle sue nuove scarpe.
‫E, naturalmente, ha bisogno di avere un link per quelle immagini mentre ha appena caricato l'immagine.
‫Ma l'immagine stessa ha un collegamento perché è archiviata da qualche parte nel nostro archivio, quindi o nei nostri server.
‫Quindi sarà un https sicuro.
‫E ho intenzione di falsificare un link qui.
‫Lo chiamerò solo immagini, scarpe dot com slash e beh, lo ha reso pubblico.
‫Quindi è vero.
‫E inseriamolo nella riga successiva in modo che sia più facile da leggere.
‫Quindi ora abbiamo il nostro post immagine.
‫E quello che possiamo fare con il post dell'immagine ora è scrivere di nuovo qualcosa sulla console per vedere cosa sta
‫succedendo.
‫E chiamerò il post dell'immagine un punto per infilare, e questo è di nuovo, qualcosa che è piuttosto interessante.
‫Quindi chiamiamo questo metodo a due stringhe sulla nostra immagine.
‫Posta uno.
‫E vedi un metodo stringa qui?
‫Io non.
‫Ed è bello perché prendiamo quello dal nostro post.
‫Quindi ereditiamo da post e ora prendiamo il suo metodo, che viene chiamato a string.
‫E se lo eseguiamo.
‫In realtà, dobbiamo smettere di eseguirlo.
‫Perché non lo vedremo, c'è una lettura ed è sparito.
‫Quindi dobbiamo prendere questa linea rossa e pubblicarla qui.
‫Quindi eseguiamolo di nuovo.
‫E dice, dai un'occhiata alle mie nuove scarpe di Dennis Punnet.
‫Ma dov'è il link che devo collegare?
‫Dai, dammi il link.
‫Bene, non è lì perché il metodo a due stringhe del nostro post non conosce i collegamenti.
‫Non ha idea dei collegamenti.
‫Non importa quali link.
‫Non ne ha bisogno.
‫Quindi una piccola sfida per te.
‫Ed è così che finiremo il video.
‫Per ora, crea un metodo a due stringhe all'interno del nostro post immagine che ci informi anche sul collegamento.
‫Va bene, spero che tu l'abbia provato, quindi quello che farò è mantenerlo semplice.
‫Copierò le due stringhe da qui nel tuo post immagine e cambierò un po' il
‫formato.
‫Aggiungerò una piccola dichiarazione qui, quindi anche il collegamento sarà e tre ancora l'utente, quindi abbiamo
‫bisogno del collegamento qui in modo che inizino a visualizzare il tuo URL Karma.
‫Quindi l'ordine è Edem, intitola il tuo URL e poi inviato dall'utente.
‫Quindi, se lo fai, sovrascriviamo dalla classe base, quindi sovrascriviamo le due stringhe dal nostro post che
‫hanno sovraccaricato dal sistema quell'oggetto.
‫Quindi puoi vedere che puoi sovrascriverlo e sovrascriverlo e così via, e vedremo dov'è il limite o
‫come possiamo limitarlo.
‫Quindi ora eseguiamolo.
‫E possiamo vedere le mie nuove scarpe, ecco il link, Dennis, così posso fare clic sul link nell'account
‫della console.
‫Ma generalmente potevo fare clic sul collegamento e potevo vedere l'immagine o il mio strumento.
‫La mia app, ad esempio, potrebbe leggere quel link e mostrare l'immagine.
‫Tutto bene.
‫Quindi questo è un primo assaggio dell'ereditarietà era un lungo video.
‫Lo so.
‫E l'ereditarietà è molto di più.
‫E esamineremo cose molto più interessanti.
‫Ma prima di tutto, andremo a una sfida nel prossimo video.
‫E quindi ci vediamo nel prossimo video.