In Swift è possibile creare eredità:Come ottenere un riferimento a un genitore/super-classe in Swift?
class A {
}
class B:A {
}
In questo esempio B
eredita da A
. Se creo una funzione all'interno di B c'è un modo per ottenere un riferimento alla sua super classe A
? Stavo pensando che sarebbe qualcosa di simile:
self.super
O
self.super()
O
self.parent
ho provato tutti questi e nessuno ha lavorato per me. Qualcuno sa come ottenere un riferimento alla super classe?
Cosa intendi per "riferimento alla sua superclasse"? Che cosa stai cercando di fare davvero? Puoi accedere alla _implementazione_ ereditata di un metodo, che di solito tutti possono chiedere. Cosa vuoi di più nella pratica vita reale? – matt
@matt Voglio un riferimento dinamico alla super classe di qualsiasi classe per scoprire quale sia la classe base. Da lì presumo che dovrei essere in grado di istanziarlo o eseguire una sorta di riflessione su di esso. –
Swift non ha introspezione; è deliberato. Puoi chiedere a Cocoa un'introspezione per te, ma ancora una volta, non hai dato un esempio reale di ciò che vuoi fare. Se l'idea è che dovresti fare una cosa se questa è una B e un'altra se questa è una A, il polimorfismo si prende cura di ciò. Ad esempio, è possibile scrivere facilmente una funzione di fabbrica che crea un'istanza A o B a seconda di cosa iniziamo. Di nuovo, e per l'ultima volta, ti chiedo cosa vuoi veramente fare. – matt