1
00:00:01,020 --> 00:00:08,340
Non esaminiamo i diversi metodi che possono essere parte delle interfacce a partire da Djala 8 in poi, come

2
00:00:08,340 --> 00:00:12,150
discusso in precedenza nel punto 18 prima di Jowler.

3
00:00:12,360 --> 00:00:17,980
Un grosso problema con le interfacce era che per loro era difficile evolversi nel tempo.

4
00:00:18,000 --> 00:00:23,460
Potrebbe non essere un problema per il software proprietario, ma quando si tratta di API pubbliche

5
00:00:23,460 --> 00:00:29,610
è assolutamente fondamentale farlo subito la prima volta, perché una volta che l'API è stata rilasciata e ampiamente utilizzata

6
00:00:29,610 --> 00:00:31,380
è molto difficile cambiare l'API.

7
00:00:31,830 --> 00:00:33,160
Clienti inaspettati

8
00:00:33,330 --> 00:00:36,670
Questo è il modo per implementare anche questi cambiamenti.

9
00:00:36,690 --> 00:00:38,240
Può facilmente battere il record.

10
00:00:39,090 --> 00:00:45,840
Questo è stato dimostrativo nel nostro non possiamo usare ciecamente classi astratte solo perché hanno un

11
00:00:45,840 --> 00:00:52,690
sacco di funzionalità per evolversi senza rompere la delimitazione del clangore con Midem sappiamo che un

12
00:00:52,720 --> 00:00:58,810
dollaro non consente l'ereditarietà multipla sotto il potenziale client si estende qualche altra classe quindi

13
00:00:58,810 --> 00:01:02,250
possono direttamente estendi la nostra classe astratta.

14
00:01:02,380 --> 00:01:06,800
L'interfaccia di Nobody Nahlah Ayed sta andando nei gruppi, qualcosa chiamato "putter di default".

15
00:01:06,870 --> 00:01:11,230
L'obiettivo principale dell'introduzione di diversi metodi era la valutazione dell'interfaccia.

16
00:01:11,580 --> 00:01:16,440
Dovremmo essere in grado di aggiungere diversi metodi dopo che l'interfaccia è stata rilasciata e non dovrebbe

17
00:01:16,440 --> 00:01:17,780
rompere il codice client.

18
00:01:18,750 --> 00:01:25,820
Qui la compatibilità binaria implica che il fatto che i metodi precedenti siano aggiunti a un'interfaccia non

19
00:01:25,820 --> 00:01:28,590
dovrebbe richiedere il completamento dell'implementazione core.

20
00:01:29,060 --> 00:01:31,310
Quindi tutto deve funzionare come prima.

21
00:01:31,730 --> 00:01:38,030
C'è Cline degli implementatori dovrebbe essere in grado di utilizzare i metodi così come i nuovi metodi predefiniti.

22
00:01:38,030 --> 00:01:40,410
Questo sarebbe anche dimostrativo nella nostra demo.

23
00:01:40,610 --> 00:01:48,030
Quindi, tieni presente che la ragione più importante per l'introduzione di metodi predefiniti è l'interfaccia alla malvagità.

24
00:01:48,100 --> 00:01:51,960
Puoi anche includere prima, ma è giusto quando progetta la tua interfaccia.

25
00:01:52,000 --> 00:01:59,120
La prima volta in questo senso è un metodo di interfaccia con un'implementazione predefinita in una sottoclasse in

26
00:01:59,120 --> 00:02:01,550
grado di fornire un'implementazione più specifica.

27
00:02:02,340 --> 00:02:06,210
Il che significa che prima non può mai essere più fine.

28
00:02:06,230 --> 00:02:08,570
Questi sono i due principali vantaggi.

29
00:02:08,570 --> 00:02:14,880
Ci sono un paio di altri benefici sottotitolati perché sto cercando di farli tutti solo sapere che i

30
00:02:14,880 --> 00:02:20,910
metodi diversi sono anche meno comunemente chiamati metodi diversi. I creatori di estensioni di Oddworld sono noti

31
00:02:22,040 --> 00:02:26,690
che cadono in campo e pensano in modo abbastanza approfondito a diversi metodi.

32
00:02:28,320 --> 00:02:34,580
OK, iniziamo con quella demo e credendo che tu debba fare è assicurarti che il tuo culo faccia

33
00:02:34,650 --> 00:02:36,110
riferimento all'8 luglio.

34
00:02:36,150 --> 00:02:42,350
Questo perché stiamo testando i metodi che vengono introdotti a luglio e nel caso in cui tu abbia utilizzato il

35
00:02:42,350 --> 00:02:44,720
7 luglio e tu non abbia Jela.

36
00:02:44,940 --> 00:02:50,820
Si prega di andare avanti e scaricare Java l'ultima versione di Java 8 dal sito web dell'articolo e impostare

37
00:02:50,820 --> 00:02:52,530
il percorso su Java 8.

38
00:02:52,590 --> 00:02:58,710
Quindi, se tu sia come Angela e Angela hai mangiato puoi anche usare la versione combinata di Sea Java

39
00:02:58,710 --> 00:03:03,540
sul prompt dei comandi per vedere quale versione di Java stai usando al momento.

40
00:03:03,580 --> 00:03:09,730
Facciamo solo un riepilogo del codice, quindi estenderemo il codice che abbiamo scritto per

41
00:03:09,790 --> 00:03:11,490
le interfacce Demel.

42
00:03:11,560 --> 00:03:17,490
Quindi, in che modo tre interfacce hanno solo un diritto al metodo astratto di annullare l'operazione.

43
00:03:17,590 --> 00:03:19,940
Il secondo è l'interfaccia essere.

44
00:03:20,170 --> 00:03:23,850
Terzo è un'altra interfaccia che effettivamente lo estende.

45
00:03:24,130 --> 00:03:27,600
E poi abbiamo questo astratto di implementazione kilted.

46
00:03:27,790 --> 00:03:30,030
Il che significa che implementa a.

47
00:03:30,380 --> 00:03:35,130
E dice che fornisce l'implementazione per uno dei metodi astratti.

48
00:03:35,500 --> 00:03:42,040
E abbiamo anche un metodo concreto chiamato X che si sta estendendo in astratto e implementando ABC su

49
00:03:42,100 --> 00:03:47,350
inable, che è dalla demo precedente e lo abbiamo descritto come una classe tester.

50
00:03:47,530 --> 00:03:47,880
OK.

51
00:03:47,890 --> 00:03:55,960
Semplicemente fa il codice e quindi diamo uno sguardo realistico ora nel nostro primo test in questa evoluzione.

52
00:03:55,970 --> 00:04:01,350
Il problema che abbiamo avuto prima dell'8 luglio, quando è indissociabile, è un problema.

53
00:04:01,370 --> 00:04:03,260
Quindi guardiamolo.

54
00:04:03,320 --> 00:04:07,080
Quindi consideriamolo una situazione più realistica.

55
00:04:07,430 --> 00:04:10,880
Supponiamo che questa interfaccia sia stata scritta da un programmatore.

56
00:04:10,910 --> 00:04:17,360
Questa società chiamata ABC e nerd sai che il concreto x che sta effettivamente implementando C è scritto da

57
00:04:17,360 --> 00:04:21,250
una società diversa chiamata x y z e x y z.

58
00:04:21,260 --> 00:04:26,720
Quindi non ci sono due società sulle quali suppongo che il loro cliente in difficoltà sia il perché

59
00:04:26,720 --> 00:04:30,560
è un'altra società che chiama un cliente che usa questa classe X.

60
00:04:30,880 --> 00:04:31,190
OK.

61
00:04:31,220 --> 00:04:36,590
E sta usando quel riferimento come C per istanziare la classe X, quindi è una società completamente diversa

62
00:04:36,590 --> 00:04:39,820
e diversa che sta facendo uso della classe X ..

63
00:04:39,920 --> 00:04:46,250
Ora supponiamo che il codice esistente che abbiamo allevato su qualcuno qui o sulla schiena ora vedo che

64
00:04:46,370 --> 00:04:51,580
questo tizio della ABC vuole introdurre un nuovo metodo per andare al metodo astratto.

65
00:04:51,860 --> 00:04:59,390
Quindi scrive che OK e che combina compila bene dopo.

66
00:04:59,760 --> 00:05:04,060
Ma ha detto a questo ragazzo di Klein che guarda il nuovo pacchetto.

67
00:05:04,070 --> 00:05:05,190
Quindi è come una nuova versione.

68
00:05:05,190 --> 00:05:05,450
Destra.

69
00:05:05,460 --> 00:05:12,810
Per questo motivo, non importa, intendo che il programmatore vuole iscrivere quel nuovo metodo chiamato Go uming che ha usato che

70
00:05:13,320 --> 00:05:15,380
X lo ha già implementato.

71
00:05:15,410 --> 00:05:18,180
Quindi vuole solo usare il nuovo metodo.

72
00:05:19,310 --> 00:05:20,180
Combina questo.

73
00:05:20,270 --> 00:05:25,420
Quindi ha il nuovo metodo per compilarlo e cerca di usare il numeratore.

74
00:05:25,530 --> 00:05:30,950
OK è questo metodo astratto che significa che stai provando a invocare un metodo astratto.

75
00:05:31,100 --> 00:05:37,260
Quindi, ciò che significa che X non ha ancora fornito una definizione per go non ha ancora fatto andare i calcoli matematici.

76
00:05:37,430 --> 00:05:44,610
Quindi questo è il problema, quindi non è un grosso problema perché di solito in questi casi sono raddoppiati o in ordine.

77
00:05:44,680 --> 00:05:50,360
Stiamo riscontrando questo problema durante i tempi di sviluppo e per te sai agire.

78
00:05:50,500 --> 00:05:56,130
Ma il vero problema sarebbe leggere estratti o se il ragazzo che lavora presso la società X Y Z.

79
00:05:56,230 --> 00:06:01,560
Quindi guarda anche al nuovo codice nella nuova libreria che ha l'interfaccia.

80
00:06:01,630 --> 00:06:05,620
E lo scarica e poi vuole usare la nuova libreria a destra.

81
00:06:05,620 --> 00:06:11,200
Normalmente si hanno migliori implementazioni migliori o si ottiene codice più recente, quindi vuole usare nuker.

82
00:06:11,260 --> 00:06:18,580
Quindi va avanti e cerca di compilarlo e dice che sai che non hai letto una questione astratta, il che vuol dire che

83
00:06:18,580 --> 00:06:22,570
sta andando, che non può usarlo e che romperà la sua corte.

84
00:06:22,570 --> 00:06:25,120
Ha bisogno di usare solo la sua versione.

85
00:06:25,360 --> 00:06:28,770
E quindi sicuramente sarebbe furioso per questo.

86
00:06:29,260 --> 00:06:35,000
Così può e non può più usare il nuovo più recente mostrato nell'interfaccia, quindi è un problema.

87
00:06:35,060 --> 00:06:38,100
Quindi è un modo poco professionale di scrivere.

88
00:06:38,310 --> 00:06:38,820
Così.

89
00:06:38,830 --> 00:06:44,870
Quindi la cosa è che il ragazzo che lavora per ABC ha mostrato come ha incluso questo mese il loro lungo tempo indietro.

90
00:06:44,890 --> 00:06:46,740
Quindi non l'hanno progettato correttamente.

91
00:06:46,780 --> 00:06:51,780
Questo è stato il problema che ha risolto il problema per lui l'8 luglio in poi.

92
00:06:51,790 --> 00:06:58,630
Questo non è più un problema perché puoi creare metriche predefinite in modo da convertirlo in un

93
00:06:58,650 --> 00:07:05,990
metodo concreto per renderlo diverso, basta aggiungere questa parola chiave prima che sia solo una dichiarazione che dice

94
00:07:06,120 --> 00:07:08,200
di andare a vedere.

95
00:07:08,440 --> 00:07:12,960
Ora basta compilare questa compilazione ricombinata.

96
00:07:12,990 --> 00:07:20,860
In questo momento tutto ciò che devi fare è solo eseguire questo client a cui hai accesso Granites.

97
00:07:20,890 --> 00:07:22,630
Quindi non abbiamo cambiato nulla.

98
00:07:22,690 --> 00:07:22,960
Destra.

99
00:07:22,960 --> 00:07:28,680
Non abbiamo compilato abbiamo compilato X dopo aver aggiunto il nuovo metodo in C ..

100
00:07:28,750 --> 00:07:35,060
Quindi il metodo predefinito ci aiuta ad evolvere l'interfaccia verso la rottura del clangore.

101
00:07:35,110 --> 00:07:38,060
Quindi questa è la sua bellezza.

102
00:07:38,110 --> 00:07:43,270
Quindi ci chiami compatibilità binaria, il che significa che non devi ricompilare il codice di

103
00:07:43,440 --> 00:07:44,130
implementazione.

104
00:07:44,470 --> 00:07:50,960
OK ora vediamo se ricompiliamo X, allora andrebbe tutto bene.

105
00:07:51,010 --> 00:07:51,310
OK.

106
00:07:51,340 --> 00:07:53,600
E questo si chiama compatibilità con la sorgente.

107
00:07:53,650 --> 00:07:57,010
Quindi se ricompili e se funziona il tuo codice funziona ancora.

108
00:07:57,010 --> 00:07:58,790
La prossima compatibilità con la sorgente.

109
00:07:58,930 --> 00:08:00,660
Ma sii totalmente compilatore se funziona.

110
00:08:00,700 --> 00:08:02,430
Questa è la compatibilità binaria senza card.

111
00:08:02,440 --> 00:08:05,660
Quindi solo due nuove cupole che puoi tenere a mente.

112
00:08:06,600 --> 00:08:09,930
E sappi che prima i metodi sono metodi di istanza.

113
00:08:10,100 --> 00:08:15,110
Quindi non puoi qui non puoi accedervi usando il nome dell'interfaccia stessa.

114
00:08:15,110 --> 00:08:21,740
In tal modo si darebbe un errore di compilazione su file che si ha un metodo statico che vedremo in seguito.

115
00:08:21,740 --> 00:08:27,620
Quindi, se lo fai, sei tu e non stai vedendo che il metodo non statico non può

116
00:08:28,490 --> 00:08:31,300
essere referenziato dal contesto storico che avresti fatto.

117
00:08:31,500 --> 00:08:36,900
E così hai finito con il metodo predefinito il nucleo o la dimostrazione.

118
00:08:37,000 --> 00:08:43,870
Diciamo che questo beat o governatore ha detto che proviene da un'altra società e anche

119
00:08:43,870 --> 00:08:47,580
questo ragazzo vuole usare un metodo come questo.

120
00:08:47,610 --> 00:08:49,480
Vuole introdurre il metodo con gli stessi soldi.

121
00:08:49,720 --> 00:08:54,600
Così chiama lui e lui chiama questo essere non andare.

122
00:08:55,030 --> 00:08:56,650
Ora combiniamo un complesso

123
00:09:01,780 --> 00:09:02,830
compilato trasformato.

124
00:09:02,840 --> 00:09:09,320
Dice che la Classe X eredita le impostazioni predefinite non correlate per i tipi di crem B e C.

125
00:09:09,320 --> 00:09:16,760
Quindi stiamo provando a sottoclasse: X sta implementando comprato un be c e entrambi hanno gli stessi parametri su

126
00:09:16,770 --> 00:09:19,010
cui ci sono definizioni migliori.

127
00:09:19,030 --> 00:09:20,650
Non sono solo matematica o dichiarazioni.

128
00:09:20,800 --> 00:09:23,120
E così abbiamo il classico problema dei diamanti.

129
00:09:23,120 --> 00:09:34,020
Ora, finora, c'è solo la soluzione, è necessario fornire un'implementazione qui.

130
00:09:34,210 --> 00:09:39,900
Ma la cosa è che sai che non può essere il default, quindi non puoi semplicemente essere peggio nelle classi.

131
00:09:39,930 --> 00:09:44,790
Possono essere per quel motivo che può essere utilizzato solo nelle interfacce, quindi dobbiamo rimuoverlo qui.

132
00:09:44,980 --> 00:09:48,860
Puoi testarlo più tardi o che tipo di messaggio dà.

133
00:09:48,940 --> 00:09:53,470
Così e anche questo deve essere pubblico.

134
00:09:53,470 --> 00:10:00,940
Altrimenti si direbbe che questo argomento non può essere letto perché lo sei perché nell'interfaccia in cui era

135
00:10:00,940 --> 00:10:05,880
pubblico qui era l'accesso predefinito, quindi è contro la regola dominante.

136
00:10:05,950 --> 00:10:07,870
Quindi dobbiamo renderlo pubblico.

137
00:10:08,110 --> 00:10:13,560
E facciamo in modo che x non sia questo metodo che dovrebbe essere invocato.

138
00:10:13,990 --> 00:10:25,560
Quindi andiamo avanti e combiniamo questo cliente con Arnett su Prince X ottenuto.

139
00:10:25,650 --> 00:10:33,330
Quindi fondamentalmente avevamo ereditarietà multiple che io sono un problema ma è stato risolto proprio qui in fase di compilazione,

140
00:10:33,330 --> 00:10:33,960
Ritchson.

141
00:10:34,050 --> 00:10:36,440
Quindi non viene trascinato nel runtime.

142
00:10:36,440 --> 00:10:41,260
Quindi in questo senso va bene perché siamo in grado di risolverlo in fase di compilazione.

143
00:10:42,340 --> 00:10:49,390
Ora voglio anche solo farti sapere che noi nel problema che avevamo era perché avevamo introdotto questo metodo di

144
00:10:49,390 --> 00:10:55,580
default e B aveva lo stesso problema che avremmo come anche se fosse così astratto.

145
00:10:55,770 --> 00:10:58,510
Quindi abbiamo qui questa definizione di metodo.

146
00:10:58,720 --> 00:11:04,480
Ma se questo fosse astratto anche allora avremmo finito con l'errore di completamento.

147
00:11:04,570 --> 00:11:04,880
OK.

148
00:11:04,900 --> 00:11:08,370
In modo che anche tu puoi testarlo più tardi.

149
00:11:08,770 --> 00:11:21,470
Ora facciamo qualcosa lascialo calmare e copi questo sotto questo metodo qui in astratto.

150
00:11:21,620 --> 00:11:23,020
Prendi a

151
00:11:25,580 --> 00:11:27,260
me renderlo pubblico ora.

152
00:11:27,580 --> 00:11:28,620
Abbiamo questo.

153
00:11:28,720 --> 00:11:41,010
Lasciatemi anche commentare qui OK, quindi lasciami andare avanti e compilare l'host X e compilarlo.

154
00:11:41,020 --> 00:11:41,910
Non è richiesto.

155
00:11:42,080 --> 00:11:43,930
Quindi lasciami solo.

156
00:11:43,940 --> 00:11:49,550
Quindi tutto ciò che ho fatto è stato aggiungere un metodo con lo stesso metodo in astratto a.

157
00:11:49,910 --> 00:11:57,800
E abbiamo anche il metodo predefinito di andare in C in B, ho appena commentato X, quindi ho appena commentato

158
00:11:57,800 --> 00:11:59,180
il metodo go.

159
00:11:59,210 --> 00:12:00,640
Il metodo override go.

160
00:12:00,680 --> 00:12:07,650
Quindi hai solo due posti uno è in astratto quale x sta estendendo R e anche in C.

161
00:12:07,730 --> 00:12:12,510
Quindi abbiamo un'implementazione in una superclasse su una in un'interfaccia di supporto.

162
00:12:12,530 --> 00:12:14,560
Quindi vediamo cosa succede in questo caso.

163
00:12:15,710 --> 00:12:18,080
Quindi è Sauti un secondo qui.

164
00:12:18,080 --> 00:12:21,630
Questo doveva essere astratto.

165
00:12:22,010 --> 00:12:31,970
Ma comunque quello nella versione e nella classe sta ottenendo la versione e la classe viene stampata.

166
00:12:32,000 --> 00:12:32,340
Destra.

167
00:12:32,360 --> 00:12:40,940
Quindi, ciò significa che il metodo nella superclasse ottiene una precedenza più alta rispetto all'interfaccia del metodo predefinita.

168
00:12:40,940 --> 00:12:44,180
Quindi questa è una regola che i designer hanno piazzato.

169
00:12:44,270 --> 00:12:47,700
OK, questa è una regola di risoluzione del conflitto.

170
00:12:48,650 --> 00:12:51,900
Quindi sappiamo che l'oggetto superclasse principale.

171
00:12:52,010 --> 00:12:55,410
Quindi, questo significa che non sono mentori diapason.

172
00:12:55,490 --> 00:13:00,290
Quindi questo GLASSIE non può escludere nessuno di questi dosimetri.

173
00:13:00,290 --> 00:13:07,220
A causa di ciò, la classe di incidentali che abbiamo appena visto dove la classe ha gli studenti più

174
00:13:07,240 --> 00:13:14,350
alti a causa della regola di scollegamento di Doc, qualsiasi interfaccia non può mai o che cosa è giusto dall'oggetto.

175
00:13:14,370 --> 00:13:14,580
Destra.

176
00:13:14,600 --> 00:13:21,050
A causa di Deckert ma semanticamente ha anche senso perché diciamo ad esempio

177
00:13:21,380 --> 00:13:29,960
che hai questa classe X e che stai andando a fare uso di quel metodo equals definito in oggetto.

178
00:13:30,080 --> 00:13:30,700
Destra.

179
00:13:30,740 --> 00:13:36,440
E poi hai il codice in caso diciamo in futuro se qualcuno come dentro o in

180
00:13:36,440 --> 00:13:45,290
C qualcuno introduce un nuovo colore di materia uguale e questo è se la regola è che se è possibile sovrascrivere gli uguali in oggetto, allora

181
00:13:45,290 --> 00:13:47,110
la tua semantica è rotta.

182
00:13:47,180 --> 00:13:55,340
Quindi semanticamente Altace ha senso per un punto di sintassi dell'uomo anche la regola sta facendo in modo che i diversi

183
00:13:55,340 --> 00:13:58,160
metodi possano sovrascrivere i metodi nell'oggetto.

184
00:13:58,200 --> 00:13:59,400
OK, quindi va bene.

185
00:13:59,400 --> 00:14:01,570
So che c'è un collegamento lì.

186
00:14:01,600 --> 00:14:08,100
Voglio dire, crescere in questo pezzo supplementare lo ha preso e viene da mamma, ma è uno stack o

187
00:14:08,120 --> 00:14:13,330
un crem Brian capre che ha una lingua o una lingua un architetto Java Language.

188
00:14:13,460 --> 00:14:15,410
E spiega anche questo problema.

189
00:14:15,560 --> 00:14:20,650
Quindi puoi leggere che puoi leggere i suoi commenti in modo che sia uno dei loro designer al largo 34.

190
00:14:20,990 --> 00:14:22,720
Conosci tutte queste caratteristiche.

191
00:14:23,480 --> 00:14:30,930
Ora la prossima cosa è come può esserci un modo per forzare x Nargeolet a usare effettivamente le parole e il

192
00:14:31,790 --> 00:14:32,980
movimento in C.

193
00:14:33,020 --> 00:14:36,180
Quindi vediamo se questo può essere fatto.

194
00:14:36,200 --> 00:14:38,750
Sì, ciò può essere fatto ovviamente.

195
00:14:41,780 --> 00:14:51,370
Il modo in cui devi farlo è che vuoi dire che vai d'arte super Daut vai normalmente sai se fare il lavoro con una

196
00:14:51,370 --> 00:14:53,930
superclasse o sei un super Dargo.

197
00:14:54,250 --> 00:14:58,010
Ma se vuoi invocare una questione con un metodo diverso devi farlo.

198
00:14:58,030 --> 00:14:58,600
OK.

199
00:14:59,380 --> 00:15:02,940
Quindi andiamo avanti ricompilare.

200
00:15:03,700 --> 00:15:08,100
Lasciami correre e lavorerà su e vedremo.

201
00:15:08,150 --> 00:15:11,350
Quindi tu sei come lo stiamo costringendo a farlo.

202
00:15:11,440 --> 00:15:18,460
E un'altra cosa è che non puoi farlo non puoi mai farlo, il che significa che puoi accedere solo

203
00:15:18,640 --> 00:15:24,850
al metodo di default di Super Interfaces Motard ma non a quello dal Super Office genitore.

204
00:15:24,920 --> 00:15:29,170
In questo modo puoi accedere ai problemi di default dei nonni.

205
00:15:29,460 --> 00:15:30,010
OK.

206
00:15:31,030 --> 00:15:33,520
E un'altra cosa è che non puoi.

207
00:15:33,760 --> 00:15:36,520
Come va il superdog qui.

208
00:15:36,670 --> 00:15:37,560
Così puoi.

209
00:15:37,720 --> 00:15:39,080
Quindi questa è l'interfaccia.

210
00:15:39,400 --> 00:15:41,970
Non puoi avere l'obiettivo del superdog qui.

211
00:15:42,120 --> 00:15:44,890
L'unica cosa che puoi avere è aiuto o supercargo.

212
00:15:44,920 --> 00:15:49,120
Quindi non puoi usare solo una parola chiave super e una deformità.

213
00:15:49,140 --> 00:15:51,520
Quindi volevo solo farlo notare.

214
00:15:51,520 --> 00:15:53,080
Quindi due cose che ho appena menzionato.

215
00:15:53,080 --> 00:15:58,290
Uno era che non puoi usare non puoi accedere a nessuna madre di nonni dalla tua.

216
00:15:58,350 --> 00:16:03,580
Dovrebbe sempre andare dal genitore stesso e non puoi usare solo la parola Superguy.

217
00:16:03,580 --> 00:16:10,300
Devi qualificarlo con il nome dell'interfaccia iron e anche lo stesso vale per il metodo predefinito che devi

218
00:16:10,300 --> 00:16:12,640
fare lo stesso in quel formato.

219
00:16:12,700 --> 00:16:18,160
Quindi non importa se si tratta di un vetro concreto o se si tratta di un metodo predefinito in un'interfaccia.

220
00:16:18,220 --> 00:16:19,780
Quindi devi tenerlo a mente.

221
00:16:20,950 --> 00:16:24,040
Ora esaminiamo un'altra strategia di risoluzione dei conflitti.

222
00:16:24,070 --> 00:16:25,650
Nick lo combina rapidamente,

223
00:16:29,070 --> 00:16:31,930
quindi lascia che ti presenti questo metodo predefinito.

224
00:16:33,020 --> 00:16:43,090
Qui lasciami chiamarlo un me quando combiniamo dovrebbe essere diverso.

225
00:16:50,200 --> 00:16:52,560
Così comune.

226
00:16:52,700 --> 00:16:58,760
Quindi a questo punto abbiamo solo due implementazioni di una ragazza in C e un'altra in una

227
00:16:58,760 --> 00:17:00,110
che vede estendere.

228
00:17:00,170 --> 00:17:09,130
Quindi in questo caso è abbastanza ovvio quindi sta accedendo al culto in C ..

229
00:17:09,220 --> 00:17:13,090
Quindi, ciò significa che alcuni interfacciano la versione in qualche interfaccia.

230
00:17:13,090 --> 00:17:14,230
Vince OK.

231
00:17:14,290 --> 00:17:16,980
Ha assunto studenti o superinterfaccia.

232
00:17:17,050 --> 00:17:22,960
In precedenza abbiamo visto che la classe della sua classe o classe di interfaccia ha la sua versione e le classi assumono presidenti.

233
00:17:22,960 --> 00:17:29,810
Ora la seconda regola è che il movimento nella difesa meridionale ha maggiore precedenza sul movimento e sulla

234
00:17:29,830 --> 00:17:30,730
super interfaccia.

235
00:17:30,790 --> 00:17:32,460
Ok, questa è la cosa giusta.

236
00:17:32,470 --> 00:17:34,970
Quindi questa è una strategia di risoluzione dei conflitti.

237
00:17:34,970 --> 00:17:42,340
La seconda strategia e un'altra cosa è che non puoi mai usare la parola chiave finale qui perché questi metodi

238
00:17:42,340 --> 00:17:48,430
dovrebbero essere superabili e non puoi non usare anche una parola chiave sincronizzata Oger sincronizzata non

239
00:17:48,430 --> 00:17:54,300
la chiama sincronizzata ma è un modificatore che vedremo in multi capitolo di discussione.

240
00:17:54,310 --> 00:17:55,750
Quindi non puoi usare nessuno dei due ordini.

241
00:17:55,750 --> 00:18:03,950
D: Qual è la tua altra cosa è che puoi davvero interfacciarlo per definire questa questione.

242
00:18:04,370 --> 00:18:11,770
E se diciamo l'interfaccia C puoi effettivamente renderlo astratto vedi che lo sta estendendo può

243
00:18:11,770 --> 00:18:13,300
effettivamente renderlo astratto.

244
00:18:13,300 --> 00:18:15,420
E perché vorresti farlo.

245
00:18:15,620 --> 00:18:21,280
Diciamo ad esempio il ragazzo che ha implementato un'interfaccia le cose che sono prima che

246
00:18:21,280 --> 00:18:25,600
quell'implementazione ritorni e vuole forzare i suoi clienti a fornire un'implementazione.

247
00:18:25,600 --> 00:18:31,300
Quindi puoi effettivamente prendere un metodo di ferro predefinito o quello che ho fatto con un abstract in cui Sure

248
00:18:31,300 --> 00:18:31,880
puoi farlo.

249
00:18:32,320 --> 00:18:37,990
E questo vale anche per le classi astratte: puoi avere una classe astratta che ha un

250
00:18:38,320 --> 00:18:45,100
metodo concreto e la sua sottoclasse che è anche una classe astratta può effettivamente concretizzare il calcestruzzo in un

251
00:18:45,100 --> 00:18:45,870
metodo astratto.

252
00:18:45,880 --> 00:18:46,670
Quindi è possibile.

253
00:18:46,690 --> 00:18:47,700
Oh.

254
00:18:48,340 --> 00:18:50,730
Quindi questo è un prodotto che sono.
